Курс 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 3.10
  2. Множества и frozenset
  3. Метод enumerate() в Python
  4. Генераторы в Python
  5. Разность множеств
  6. Имена объектов в Python
  7. Повторение элементов списков
  8. Colorama: окрашивание текста в Python
  9. Протокол управления контекстом
  10. Переопределение метода delitem в Python
  11. Python Enumerate
  12. Подписка на каналы разработчиков
  13. Вычисление натурального логарифма в NumPy
  14. Создание коллекций из выражения-генератора
  15. Поиск шаблона в строке
  16. f-строки в формате строк
  17. Установка и использование Telegram API в Python
  18. Работа с YAML в Python
  19. Создание обратного итератора
  20. Оценка выражений генератора в Python
  21. Проверка окончания строки с помощью str.endswith()
  22. Запуск внешних программ с subprocess
  23. Создание новых списков в Python
  24. Метод gt в Python
  25. Непрерывная проверка в Python
  26. Создание и операции с дробями
  27. Объединение словарей в Python
  28. Библиотека itertools: объединение списков
  29. Форматирование строк в Python
  30. Декораторы в Python
  31. Путь к интерпретатору Python
  32. Работа с zip-архивами в Python
  33. Объединение кортежей в Python
  34. Особенности множеств в Python
  35. Python Метод Union Множеств
  36. Использование type hints
  37. Нахождение самого длинного слова в списке с помощью max
  38. Наследование в программировании
  39. Функция enumerate() в Python
  40. Работа с массивами в Python
  41. Работа с SQLite в Python
  42. Расчет времени выполнения программы
  43. Улучшение читаемости кода в Python
  44. Хэш-функции в Python
  45. Виртуальные среды в Python
  46. Проверка ввода с помощью isdigit
  47. Работа с timedelta

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