Курс 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"
- Combobox в Tkinter
- ROT13 Шифр Цезаря в Python
- Циклы for в Python
- Генерация ключей RSA
- Вычисление натурального логарифма в NumPy
- Проверка дублей в списке.
- Любовь к Python
- Python: изменяемые и неизменяемые коллекции
- Методы обработки строк в Python
- Оператор «or» в Python
- Синхронизация потоков с time.sleep()
- %pinfo: получение информации об объекте
- Работа с датой и временем в Python
- Python Аргументы по умолчанию
- Метод eq для сравнения объектов
- Удаление URL-адресов в Python
- Перезапуск ячейки в Jupyter Notebook с dostoevsky
- Объединение списков в Python
- Создание спинбокса в tkinter
- Функция sleep() в Python
- Применение команды break
- Списковое включение в Python
- Выключение компьютера с помощью Python
- Управление мышью и клавиатурой с Pyautogui
- Имена объектов в Python
- Поиск шаблона в начале строки
- Частичное применение функций в Python
- Метод count в Python: почему count(», ») возвращает 4?
- Получение срезов итераторов
- Модуль os в Python: работа с файлами
- Форматирование строк с f-строками
- Шаблоны и наследование в Flask
- Округление банкира в Python
- Избегайте ошибку FileNotFoundError
- Метод __float__ в Python
- Объединение словарей в Python
- Названия переменных
- Разность множеств
- Удаление специальных символов
- Транспонирование 2D-массива с помощью zip
- Установка и использование модуля Wikipedia
- Упрощение условных выражений с тернарным оператором
- Особенности запятых в Python
- Объединение словарей в Python
- Docstring в Python
- Функция findall() для поиска вхождений строки
- Оператор распаковки в Python
- Нахождение хеша для бесконечности и NaN в Python















