Курс 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. Работа с defaultdictами в Python
  2. Измерение времени выполнения кода в Python
  3. Логирование с Loguru
  4. Конкатенация списков в Python
  5. Область видимости переменных
  6. Progress с библиотекой tqdm
  7. Управление импортом в Python
  8. Модуль os в Python: работа с файлами
  9. Работа с типами данных в Python с помощью pydantic.
  10. Склеивание строк через метод join()
  11. Циклы for в Python
  12. Вычисление натурального логарифма в NumPy
  13. Функции any() и all() в Python
  14. Установка и использование Virtualenv
  15. Фильтрация данных в Python.
  16. Python: динамическая типизация и проверка типов
  17. Удаление ссылок в Python
  18. enumerate() в Python для работы с индексами
  19. Функция enumerate() в Python
  20. Python: Splat-оператор и splatty-splat
  21. Обработка ошибок ввода данных
  22. Фильтрация списка от «ложных» значений
  23. Удаление дубликатов с сохранением порядка с помощью dict.fromkeys
  24. Удаление элементов из списка в Python
  25. Создание графики с черепахой
  26. Счетчик в Python: most_common()
  27. Создание панели меню Tkinter
  28. Создание новых списков
  29. Работа с файлами в Python
  30. Определение относительного пути
  31. Декоратор проверки активности
  32. Добавление элементов в список
  33. Python-dateutil — работа с датами
  34. Переопределение метода
  35. split() без разделителя
  36. Метод matmul для умножения матриц
  37. Декоратор для группы пользователей в Django
  38. Выбор редактора кода.
  39. Хеширование паролей с солью
  40. Работа с файловой системой в Python
  41. Основы работы с os
  42. Переопределение метода xor в Python
  43. Упрощение работы с JSON-данными в Python
  44. Избегайте двойного подчеркивания
  45. Возвращение нескольких значений
  46. Аннотации типов в Python
  47. Создание словаря через dict comprehension
  48. Список переменных с %who
  49. Работа со словарями с defaultdict из collections

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