Курс 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
- Простой калькулятор Python
- Руководство по использованию Colorama
- Оператор in в Python
- None в Python: использование и особенности
- Ключевое слово global в Python
- Нахождение максимального значения и его индекса в списке
- Сортировка в Python
- lru_cache оптимизация функций
- Объединение словарей в Python
- Распаковка элементов массива
- Python: возвращение нескольких значений
- Объединение строк с помощью метода join
- Параллельные вычисления в Python
- Функции с необязательными аргументами
- Работа с CSV файлами в Python
- Преобразование текста в речь с Python
- Работа с deque в Python
- Преобразование списка в словарь через генератор
- Сортировка с помощью параметра key
- Получение размера объекта с sys.getsizeof()
- Defaultdict в Python
- Установка Python3.7 и PIP
- Распаковка аргументов в Python
- Создание и инициализация объектов
- Использование эмодзи в Python
- Генерация QR-кодов с библиотекой qrcode
- Возврат значений из генератора
- Модуль subprocess: запуск внешних команд
- Особенности множеств в Python
- Поиск шаблона в строке
- Оптимизация гиперпараметров с Scikit Optimize
- Отправка POST-запроса в REST API
- Объединение объектов в Python
- TypedDict для kwargs в Python 3.12
- Проверка типов с помощью isinstance
- Сравнение def и lambda функций в Python
- Определение относительного пути
- Оператор Walrus в Python
- Обязательные аргументы в Python
- Создание лямбда-функций
- Python Тесты и Гайды
- Удаление ключа из словаря
- Управление ресурсами с контекстными менеджерами
- Метод pos в Python















