Курс 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"
- Работа с географическими данными.
- Метод rxor для операции побитового исключающего «или»
- Удаление элемента по индексу в Python
- Анонимные функции Lambda
- Переменные в Python: сокращение гласных
- Создание именованных кортежей в Python
- Python enumerate() функции
- Команда %dhist — список посещенных каталогов
- Поиск анаграмм с Counter
- Особенности ключей словаря в Python
- Создание класса в Python
- Форматирование строк в Python
- Метод index() в Python
- Создание класса очереди
- Метод matmul для умножения матриц
- Идентификатор объекта в Python
- Итераторы с потерямиZIP
- Частичное совпадение пользовательского ввода в Python 3.10
- Enum в Python: создание и использование перечислений
- Проверка переменных окружения в Python
- Вложенные генераторы в Python
- Работа с итераторами через срезы
- Расширение информации об ошибке в Python
- inspect в Python: анализ кода
- Конвертация изображений в PDF
- Проблемы с dict в Python
- Работа с кортежами в Python
- Сравнение def и lambda функций в Python
- OrderedDict — упорядоченный словарь
- Удаление элементов по срезу
- Метод count() для списка
- Pretty-printing JSON в Python
- Проверка существования переменной с оператором :=
- Регистрация на TenChat
- Декораторы в Python
- Метод lt для сортировки объектов
- Итераторы в Python
- Создание и использование ChainMap
- Функции высшего порядка в Python
- Область видимости переменных
- Оператор in в Python
- Избегайте двойного подчеркивания
- Создание списка через итерацию
- Модуль pprint
- Инверсия списка/строки в Python















