Курс 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
  2. Блок else в циклах Python
  3. Однострочники Python
  4. Оптимизация памяти с slots
  5. Преобразование регистра строк
  6. Работа со словарями с defaultdict из collections
  7. Нахождение хеша для бесконечности и NaN в Python
  8. Big O оптимизация
  9. Логические операторы в Python
  10. Операции с комплексными числами
  11. Удаление дубликатов с помощью множеств
  12. Установка random seed в Python
  13. Сортировка HTML по CSS-селектору
  14. Создание и использование ChainMap
  15. Управление контекстом выполнения
  16. Модуль os в Python: работа с файлами
  17. Преобразование объекта в строку
  18. Замена переменных в Python
  19. Обработка исключений с блоком else
  20. Модуль xkcd: добавление юмора в Python
  21. Многопоточность и асинхронное программирование в Python
  22. Циклы в Python
  23. Работа с многоуровневыми словарями в Python
  24. Установка пакетов с помощью pip
  25. Кортеж в Python: создание, доступ, изменение
  26. Управление ресурсами с контекстными менеджерами
  27. Подсчет элементов с помощью Counter
  28. Метод is_absolute() для PurePath
  29. Проверка надежности пароля на Python
  30. Очистка списка от False, None, 0, «»
  31. Создание списков в Python
  32. Транспонирование матрицы
  33. Namedtuple в Python
  34. Выход из профиля в Django
  35. Форматирование строк в Python.
  36. Объединение словарей в Python 3.5+
  37. Итерации в Python
  38. Группы исключений в Python
  39. Работа с defaultdictами в Python
  40. Использование defaultdict в Python
  41. Работа с срезами в Python
  42. Разделение строки с помощью split()
  43. Создание словарей с defaultdict
  44. Хеширование паролей с использованием salt
  45. Сравнение объектов в Python
  46. Профилирование данных с Pandas.
  47. Функции в одну строку
  48. Обработка исключений

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