Курс 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. Отступы в Python
  2. Метаклассы в Python
  3. Удаление дубликатов из списка с помощью dict.fromkeys
  4. Структурирование именованных констант
  5. Модуль os: работа с файлами и папками
  6. Использование функции product
  7. Получение атрибутов и методов класса
  8. Метод __iand__ для пользовательских классов
  9. Установка пакета в Python
  10. Основы работы со строками в Python
  11. Работа с IP-адресами в Python
  12. Метод get() в Python
  13. Применение функции к элементам списка
  14. Работа с многоуровневыми словарями в Python
  15. Отладка в командной строке
  16. Python Аргументы по умолчанию
  17. Списки в Python: синтаксис представления
  18. Пустой оператор pass в Python
  19. Модуль math: константы π и e
  20. Проекты на Python
  21. Распаковка аргументов в Python
  22. Нахождение самого длинного слова в списке с помощью max
  23. Объединение словарей в Python
  24. Мониторинг работы программы Py-spy
  25. Генераторы данных
  26. Обход элементов в Python
  27. Возврат нескольких значений
  28. Работа с SQLite в Python
  29. Ускорение обработки данных с %autoawait
  30. Форматирование кода на Python
  31. Безопасный доступ к значениям словаря
  32. Аргумент по умолчанию
  33. Установка и использование библиотеки google
  34. Переменные в Python: сокращение гласных
  35. Работа с timedelta в Python
  36. Аннотации типов в Python
  37. Сравнение объектов в Python
  38. Разделение строк в Python
  39. Обновление шаблона base.html
  40. Функция enumerate в Python
  41. Изменение объектов в Python
  42. Списковое включение в Python
  43. Метод __ilshift__ для битового сдвига влево
  44. Генерация случайных чисел Python
  45. Метод index() в Python

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