Курс 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"
- Функция reversed() в Python
- Разделение строки с помощью re.split()
- Измерение времени выполнения кода с использованием time
- Форматирование строк в Python.
- PEP-401: оператор
- Списковые включения в Python
- split() — разделение строки
- Декораторы в Python
- Тестирование времени с Freezegun
- Проектирование Singleton с метаклассом
- Магические методы в Python
- Бинарный поиск
- Использование двоеточия в Python
- Генераторы в Python
- Генерация ключей RSA
- Таймер обратного отсчета
- Функции с необязательными аргументами
- Объединение словарей в Python
- Enum в Python: создание и использование перечислений
- Python reversed() функция
- Методы сравнения множеств
- Создание и операции с дробями
- Очистка входных данных
- Работа с срезами в Python
- Переопределение метода __or__()
- Конкатенация строк с join() в Python
- Использование *args
- Метод join для объединения строк
- Подписка на каналы разработчиков
- Использование метода lower()
- Комментарии в Python.
- Подробная информация о %pinfo
- Фильтрация входных данных в Python
- Копирование словарей и списков в Python
- Преобразование данных в Python
- PUT запрос для обновления данных
- Преобразование данных в Python
- Замена элементов в списке с помощью генераторов списков
- Работа с библиотекой requests
- Объединение списков в Python
- Передача аргументов через **arguments
- TypedDict для kwargs в Python 3.12
- Мониторинг памяти с Pympler
- Каналы Senior: Python, Java, Frontend, SQL, C++
- Выключение компьютера с помощью Python
- Обработка исключений в Python















