Курс 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. Функция reversed() в Python
  2. Разделение строки с помощью re.split()
  3. Измерение времени выполнения кода с использованием time
  4. Форматирование строк в Python.
  5. PEP-401: оператор
  6. Списковые включения в Python
  7. split() — разделение строки
  8. Декораторы в Python
  9. Тестирование времени с Freezegun
  10. Проектирование Singleton с метаклассом
  11. Магические методы в Python
  12. Бинарный поиск
  13. Использование двоеточия в Python
  14. Генераторы в Python
  15. Генерация ключей RSA
  16. Таймер обратного отсчета
  17. Функции с необязательными аргументами
  18. Объединение словарей в Python
  19. Enum в Python: создание и использование перечислений
  20. Python reversed() функция
  21. Методы сравнения множеств
  22. Создание и операции с дробями
  23. Очистка входных данных
  24. Работа с срезами в Python
  25. Переопределение метода __or__()
  26. Конкатенация строк с join() в Python
  27. Использование *args
  28. Метод join для объединения строк
  29. Подписка на каналы разработчиков
  30. Использование метода lower()
  31. Комментарии в Python.
  32. Подробная информация о %pinfo
  33. Фильтрация входных данных в Python
  34. Копирование словарей и списков в Python
  35. Преобразование данных в Python
  36. PUT запрос для обновления данных
  37. Преобразование данных в Python
  38. Замена элементов в списке с помощью генераторов списков
  39. Работа с библиотекой requests
  40. Объединение списков в Python
  41. Передача аргументов через **arguments
  42. TypedDict для kwargs в Python 3.12
  43. Мониторинг памяти с Pympler
  44. Каналы Senior: Python, Java, Frontend, SQL, C++
  45. Выключение компьютера с помощью Python
  46. Обработка исключений в Python

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