Курс 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. Логирование с Loguru
  2. Комментарии в Python.
  3. Подсчет часто встречающихся элементов
  4. Pretty-printing JSON в Python
  5. Отступы в Python
  6. Работа с аргументами командной строки
  7. Хранение переменных в словаре.
  8. Управление пакетами с pip
  9. Область видимости переменных
  10. Таймер обратного отсчета
  11. Тестирование функции сложения
  12. Замена переменных в Python
  13. Декораторы с @wraps
  14. Удаление символа из строки
  15. Работа с комплексными числами
  16. Установка User-Agent в Python
  17. Метод index() в Python
  18. Профилирование данных с Pandas
  19. Работа с кортежами в Python
  20. Принципы SRP и OCP
  21. Подробная информация о %pinfo
  22. Асинхронное выполнение задач в процессах
  23. Использование эмодзи в Python
  24. Работа со стеком в Python
  25. f-строки в формате строк
  26. Список методов и атрибутов
  27. Применение функции к элементам списка
  28. Именованные срезы в Python
  29. Путь к интерпретатору Python
  30. Оптимизация поиска в словарях
  31. Использование *args
  32. Оператор «not» в Python
  33. Модуль antigravity: генерация координат
  34. Построение графиков в Matplotlib
  35. Преобразование кортежа в словарь.
  36. Запуск внешних программ с subprocess
  37. Блок else в циклах Python
  38. Вывод символов строки в Python
  39. Условные выражения в Python
  40. Библиотека Chartify: руководство
  41. Обход элементов в Python
  42. Генераторы списков
  43. Область видимости переменных в Python

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