Курс 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. Создание вкладок с TKinter
  3. Методы classmethod и staticmethod
  4. Проверка типов с помощью isinstance
  5. Модуль future Python
  6. Изменение IP-адреса в Python
  7. Удаление дубликатов из списка
  8. Управление контекстом с помощью декоратора contextmanager
  9. Функция zip() в Python
  10. Работа с массивами в Numpy
  11. Подсчет элементов в Python
  12. Условные выражения в Python
  13. Группы исключений в Python
  14. Подсчет элементов в Python
  15. Генераторы в Python
  16. Оператор (*) в Python
  17. Метод clear для коллекций
  18. Обновление данных через PUT запрос
  19. Аннотации типов в Python
  20. Обработка исключений в Python
  21. Объединение объектов в Python
  22. Описание скриптов в README
  23. Numpy: объединение массивов
  24. Повторение элементов в Python
  25. Избегайте ошибку FileNotFoundError
  26. Оператор «and» в Python
  27. Основные функции и модули Python
  28. Генераторы списков
  29. Импортирование в Python
  30. Работа с базами данных SQLite
  31. Solidity для DeFi Ethereum
  32. Использование super() в Python
  33. Конкатенация строковых литералов
  34. Рациональные числа в Python
  35. Цикл while в Python
  36. Работа со слайсами
  37. Основы работы со строками в Python
  38. Работа с парами ключ-значение
  39. Сортировка списка по индексам
  40. Равенство и идентичность в Python
  41. Компиляция регулярных выражений
  42. Разбиение строки в Python
  43. Создание директории в Python
  44. Генераторы в Python
  45. Добавление Progressbar в Python
  46. Python и Монти Пайтон
  47. Создание и удаление объектов

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