Курс 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. Утечки переменных цикла в Python 3.x
  3. Оператор del в Python
  4. Создание словарей и множеств в Python.
  5. Оператор «or» в Python
  6. Сравнение строк в Python
  7. Работа с аргументами командной строки в Python
  8. Работа с прокси в Python
  9. Метод lt для сортировки объектов
  10. Определение размера папок в Python
  11. Удаление элементов из списка в Python
  12. Проверка элемента в множестве.
  13. Метод lt для сортировки объектов
  14. Оператор обр. импликации
  15. Ускорение кода с помощью векторизации
  16. Метод split() для разделения строк
  17. Проверка вхождения подстроки
  18. Поиск с библиотекой Google
  19. Конвертация коллекций в Python.
  20. Копирование файлов с shutil()
  21. Протокол управления контекстом
  22. Введение в Python
  23. Работа с изображениями Pillow
  24. Метод append() для списка
  25. Функция zip() в Python
  26. Каналы Senior: Python, Java, Frontend, SQL, C++
  27. Создание GUI с Tkinter: Entry
  28. Flask: создание веб-приложений
  29. Компиляция регулярных выражений
  30. Python Метод sleep() из time
  31. Мониторинг памяти с Pympler
  32. Оптимизация интернирования строк
  33. Работа со строками
  34. Условное добавление элементов в список
  35. Метод difference_update() — разность множеств
  36. Генераторы в Python
  37. Создание новых функций с помощью functools.partial
  38. Добавление цвета в консоли
  39. Перезапуск ячейки в Jupyter Notebook с dostoevsky
  40. Тайное преобразование типа ключа
  41. Локальные переменные.
  42. Модуль future Python
  43. Печать списка с помощью метода join
  44. Проектирование Singleton с метаклассом
  45. Карта бомбоубежищ в Москве и Питере

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