Курс 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. Работа с географическими данными.
  2. Метод rxor для операции побитового исключающего «или»
  3. Удаление элемента по индексу в Python
  4. Анонимные функции Lambda
  5. Переменные в Python: сокращение гласных
  6. Создание именованных кортежей в Python
  7. Python enumerate() функции
  8. Команда %dhist — список посещенных каталогов
  9. Поиск анаграмм с Counter
  10. Особенности ключей словаря в Python
  11. Создание класса в Python
  12. Форматирование строк в Python
  13. Метод index() в Python
  14. Создание класса очереди
  15. Метод matmul для умножения матриц
  16. Идентификатор объекта в Python
  17. Итераторы с потерямиZIP
  18. Частичное совпадение пользовательского ввода в Python 3.10
  19. Enum в Python: создание и использование перечислений
  20. Проверка переменных окружения в Python
  21. Вложенные генераторы в Python
  22. Работа с итераторами через срезы
  23. Расширение информации об ошибке в Python
  24. inspect в Python: анализ кода
  25. Конвертация изображений в PDF
  26. Проблемы с dict в Python
  27. Работа с кортежами в Python
  28. Сравнение def и lambda функций в Python
  29. OrderedDict — упорядоченный словарь
  30. Удаление элементов по срезу
  31. Метод count() для списка
  32. Pretty-printing JSON в Python
  33. Проверка существования переменной с оператором :=
  34. Регистрация на TenChat
  35. Декораторы в Python
  36. Метод lt для сортировки объектов
  37. Итераторы в Python
  38. Создание и использование ChainMap
  39. Функции высшего порядка в Python
  40. Область видимости переменных
  41. Оператор in в Python
  42. Избегайте двойного подчеркивания
  43. Создание списка через итерацию
  44. Модуль pprint
  45. Инверсия списка/строки в Python

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