Курс 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. Структурирование данных с Pydantic
  3. Управление пакетами с pip
  4. Проверка памяти объекта
  5. Именованные аргументы в Python
  6. Добавление кнопки в tkinter
  7. Списки: объединение, изменение
  8. Безопасный доступ к значениям словаря
  9. Мощь вложенных функций в Python
  10. Условное добавление элементов в список
  11. Создание виртуальной среды
  12. Синхронизация доступа к ресурсам
  13. Поиск файлов по шаблону
  14. Генерация ключей RSA
  15. Просмотр внешнего файла в Python
  16. Метод __irshift__ для Python
  17. Поиск наиболее частого элемента списке
  18. Динамическая типизация в Python
  19. Сортировка в Python
  20. OrderedDict — упорядоченный словарь
  21. Bootle — простой веб-фреймворк
  22. Python OrderedDict и fromkeys() — работа с словарями
  23. Работа с географическими данными в Python
  24. Вывод букв строки в Python
  25. Принципы LSP и ISP в Python
  26. Метод count() для списка
  27. Однострочники Python
  28. Оптимизация создания строк
  29. Обмен данными с asyncio.Queue
  30. Обработка исключений с блоком else
  31. Функции all() и any() в Python
  32. Работа с аргументами командной строки в Python
  33. Декораторы в Python
  34. Операции с датами в Python
  35. Генераторы в Python
  36. Получение текущей даты и времени с помощью datetime
  37. Удаление первого элемента списка
  38. Обновление шаблона base.html
  39. Переопределение унарных операторов
  40. Установка Git и AWS CLI
  41. Транспонирование 2D-массива с помощью zip
  42. Модуль array: создание и использование массивов
  43. Подписка на @SelectelNews
  44. Создание новых списков
  45. Взаимодействие с внешними процессами в Python

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