Курс 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. Простой калькулятор Python
  4. Руководство по использованию Colorama
  5. Оператор in в Python
  6. None в Python: использование и особенности
  7. Ключевое слово global в Python
  8. Нахождение максимального значения и его индекса в списке
  9. Сортировка в Python
  10. lru_cache оптимизация функций
  11. Объединение словарей в Python
  12. Распаковка элементов массива
  13. Python: возвращение нескольких значений
  14. Объединение строк с помощью метода join
  15. Параллельные вычисления в Python
  16. Функции с необязательными аргументами
  17. Работа с CSV файлами в Python
  18. Преобразование текста в речь с Python
  19. Работа с deque в Python
  20. Преобразование списка в словарь через генератор
  21. Сортировка с помощью параметра key
  22. Получение размера объекта с sys.getsizeof()
  23. Defaultdict в Python
  24. Установка Python3.7 и PIP
  25. Распаковка аргументов в Python
  26. Создание и инициализация объектов
  27. Использование эмодзи в Python
  28. Генерация QR-кодов с библиотекой qrcode
  29. Возврат значений из генератора
  30. Модуль subprocess: запуск внешних команд
  31. Особенности множеств в Python
  32. Поиск шаблона в строке
  33. Оптимизация гиперпараметров с Scikit Optimize
  34. Отправка POST-запроса в REST API
  35. Объединение объектов в Python
  36. TypedDict для kwargs в Python 3.12
  37. Проверка типов с помощью isinstance
  38. Сравнение def и lambda функций в Python
  39. Определение относительного пути
  40. Оператор Walrus в Python
  41. Обязательные аргументы в Python
  42. Создание лямбда-функций
  43. Python Тесты и Гайды
  44. Удаление ключа из словаря
  45. Управление ресурсами с контекстными менеджерами
  46. Метод pos в Python

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