Курс Python → Искажение имен в Python

Искажение имен в Python — это механизм, который позволяет избежать конфликтов именования между различными пространствами имен. Этот механизм особенно полезен при работе с классами, где члены класса могут иметь имена, которые могут пересекаться с другими именами в программе. Искажение имен позволяет интерпретатору Python изменять имена членов класса, начинающихся с двойного подчеркивания (__), чтобы избежать таких конфликтов.

Когда мы используем искажение имен в Python, интерпретатор автоматически изменяет имена членов класса, начинающиеся с двойного подчеркивания и не заканчивающиеся более чем одним завершающим подчеркиванием. Изменение заключается в добавлении _NameOfTheClass впереди искаженного имени. Например, если у нас есть член класса с именем __variable, то после искажения его имя станет _NameOfTheClass__variable.

Пример использования искажения имен можно продемонстрировать на простом классе:


class MyClass:
    def __init__(self):
        self.__private_variable = 10

obj = MyClass()
print(obj._MyClass__private_variable)  # Используем искаженное имя

В данном примере мы создаем класс MyClass с приватной переменной __private_variable. После искажения имени, мы можем обратиться к этой переменной, используя новое имя _MyClass__private_variable. Это позволяет избежать конфликтов именования и обеспечивает безопасность данных в классе.

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Декораторы с @wraps
  2. Работа с пакетами
  3. Импорт в Python: список all
  4. Метод get() в Python
  5. Python и Юникод: работа с цифрами
  6. Извлечение данных из JSON
  7. Лямбда-функции в Python
  8. Работа со словарями в Python
  9. Создание словаря с значением по умолчанию
  10. Создание новой даты в Python
  11. Метод join() для объединения элементов в строку.
  12. Импорт модулей и пакетов в Python
  13. Игра «Угадывание чисел»
  14. Проверка версии Python
  15. Вложенные функции в Python
  16. Многоточие в Python
  17. Просмотр внешнего файла в Python
  18. Python defaultdict добавление ключа
  19. Многопоточность и асинхронное программирование в Python
  20. Библиотека itertools: объединение списков
  21. Объединение списков в Python
  22. Подсчет элементов с помощью Counter
  23. Вывод букв строки в Python
  24. Фильтрация списка чисел
  25. Управление пакетами с pip
  26. Срезы в Numpy
  27. Работа с аргументами командной строки в Python
  28. Секреты Python
  29. Замыкания в Python
  30. Сортировка с помощью key
  31. Измерение времени выполнения в Python
  32. Сериализация и десериализация объектов
  33. JMESPath в Python
  34. Обработка ошибок в JSON данных
  35. Counter() — подсчет элементов
  36. Оценка точности модели
  37. Обмен данными с asyncio.Queue
  38. Комментарии в Python
  39. Поиск индекса элемента
  40. Проверка элемента в множестве.
  41. Модуль functools в Python
  42. Работа с CSV файлами
  43. Ограничение итераций в Python

Marketello читают маркетологи из крутых компаний