Курс 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"
- Замена текста в Python
- Блок else в циклах Python
- Однострочники Python
- Оптимизация памяти с slots
- Преобразование регистра строк
- Работа со словарями с defaultdict из collections
- Нахождение хеша для бесконечности и NaN в Python
- Big O оптимизация
- Логические операторы в Python
- Операции с комплексными числами
- Удаление дубликатов с помощью множеств
- Установка random seed в Python
- Сортировка HTML по CSS-селектору
- Создание и использование ChainMap
- Управление контекстом выполнения
- Модуль os в Python: работа с файлами
- Преобразование объекта в строку
- Замена переменных в Python
- Обработка исключений с блоком else
- Модуль xkcd: добавление юмора в Python
- Многопоточность и асинхронное программирование в Python
- Циклы в Python
- Работа с многоуровневыми словарями в Python
- Установка пакетов с помощью pip
- Кортеж в Python: создание, доступ, изменение
- Управление ресурсами с контекстными менеджерами
- Подсчет элементов с помощью Counter
- Метод is_absolute() для PurePath
- Проверка надежности пароля на Python
- Очистка списка от False, None, 0, «»
- Создание списков в Python
- Транспонирование матрицы
- Namedtuple в Python
- Выход из профиля в Django
- Форматирование строк в Python.
- Объединение словарей в Python 3.5+
- Итерации в Python
- Группы исключений в Python
- Работа с defaultdictами в Python
- Использование defaultdict в Python
- Работа с срезами в Python
- Разделение строки с помощью split()
- Создание словарей с defaultdict
- Хеширование паролей с использованием salt
- Сравнение объектов в Python
- Профилирование данных с Pandas.
- Функции в одну строку
- Обработка исключений















