Курс 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 3.x
- Оператор del в Python
- Создание словарей и множеств в Python.
- Оператор «or» в Python
- Сравнение строк в Python
- Работа с аргументами командной строки в Python
- Работа с прокси в Python
- Метод lt для сортировки объектов
- Определение размера папок в Python
- Удаление элементов из списка в Python
- Проверка элемента в множестве.
- Метод lt для сортировки объектов
- Оператор обр. импликации
- Ускорение кода с помощью векторизации
- Метод split() для разделения строк
- Проверка вхождения подстроки
- Поиск с библиотекой Google
- Конвертация коллекций в Python.
- Копирование файлов с shutil()
- Протокол управления контекстом
- Введение в Python
- Работа с изображениями Pillow
- Метод append() для списка
- Функция zip() в Python
- Каналы Senior: Python, Java, Frontend, SQL, C++
- Создание GUI с Tkinter: Entry
- Flask: создание веб-приложений
- Компиляция регулярных выражений
- Python Метод sleep() из time
- Мониторинг памяти с Pympler
- Оптимизация интернирования строк
- Работа со строками
- Условное добавление элементов в список
- Метод difference_update() — разность множеств
- Генераторы в Python
- Создание новых функций с помощью functools.partial
- Добавление цвета в консоли
- Перезапуск ячейки в Jupyter Notebook с dostoevsky
- Тайное преобразование типа ключа
- Локальные переменные.
- Модуль future Python
- Печать списка с помощью метода join
- Проектирование Singleton с метаклассом
- Карта бомбоубежищ в Москве и Питере















