Курс Python → Избегайте двойного подчеркивания
При работе с атрибутами в Python, особенно с атрибутами, начинающимися с двойного подчеркивания (__), возникают определенные сложности. В данном случае, чтобы избежать конфликтов имен, мы добавляем префикс или суффикс к атрибуту. Например, в первом фрагменте кода мы добавляем _Yo к атрибуту __honey, чтобы избежать конфликтов с атрибутами других классов.
Однако, второй фрагмент кода не работает по той причине, что Python исключает имена, заканчивающиеся двойным подчеркиванием при искажении имен. Это означает, что добавление префикса или суффикса к атрибуту, заканчивающемуся на двойное подчеркивание, не будет работать.
Для решения этой проблемы можно использовать другие методы, например, использовать одиночное подчеркивание вместо двойного для избежания искажения имен. Также можно переименовать атрибуты так, чтобы они не содержали двойного подчеркивания в конце.
class MyClass:
def __init__(self):
self.__honey = "Delicious honey"
class AnotherClass:
def __init__(self):
self._Yo__honey = "Another delicious honey"
В приведенном примере кода, мы использовали одиночное подчеркивание вместо двойного для атрибута __honey во втором классе, чтобы избежать проблем с искажением имен. Это позволяет нам успешно получить доступ к атрибуту без конфликтов.
Другие уроки курса "Python"
- Списковое включение в Python
- Замеры производительности в Python
- Сравнение def и lambda функций в Python
- Атрибуты массивов в Numpy
- Ускорение обработки данных с %autoawait
- Объединение списков с помощью zip
- Декораторы в Python
- Доступ к локальным переменным
- Отладка утечек памяти в Python
- Разница между датами
- Объединение списков в строку
- Переменная с нижним подчеркиванием
- Объединение словарей в Python
- Операторы увеличения и уменьшения переменной
- Оптимизация памяти в Python
- Генерация UUID в Python
- Создание функций высшего порядка
- Декораторы в Python
- Работа со строками
- Печать комбинаций в Python с Itertools
- Python 3.12: переиспользование кавычек
- Генерация QR-кодов с Python
- Работа с контекстными менеджерами
- Функция zip() в Python
- Обрезка изображения с Pillow
- Логирование с Loguru
- Управление контекстом выполнения
- Избегание изменяемых аргументов
- Поиск с библиотекой Google
- Python Метод sleep() времени
- Подписка на Kaspersky Team
- Pretty-printing JSON в Python
- Преобразование текста в нижний регистр
- Получение списка файлов в директории с использованием os
- Замена текста в Python
- Удаление файлов с shutil.os.remove()
- Многострочные комментарии в Python
- Оформление кода на Python
- Работа с JSON данными в Python
- Возврат нескольких значений
- Списковое включение в Python
- Работа с итераторами через срезы















