Курс 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"
- Создание словарей с defaultdict()
- Обработка аргументов Python
- Преобразование регистра строк
- Цикл for в Python
- Оболочка Python
- Объединение списков в Python
- Применение промокода в Много лосося
- Официальный канал Python в Telegram
- Ноутбуки AMD Ryzen ™ 4000: мощность и эффективность
- Solidity для DeFi Ethereum
- Numpy: разбиение массивов
- Создание списков в Python
- Работа с модулем random
- Работа со временем в Python
- Избегание циклических зависимостей классов в Python
- Закрытие файла в Python
- Декоратор total_ordering для сравнения объектов
- Операторы увеличения и уменьшения в Python
- Особенности ключей словаря в Python
- Перевернуть список в Python
- Аннотации типов в Python
- Форматирование строк в Python
- Циклы for в Python
- Обработка исключений в Python
- Оператор обр. импликации
- Обработка исключений
- Идентификатор объекта в Python
- Лямбда-функции в Python
- Подсчет элементов в Python
- Разница между датами
- PrettyTable: создание таблицы
- Определение функций с необязательными аргументами
- Слияние словарей в Python 3.9
- Создание списков в Python
- Переменная Шредингера
- Создание множества в Python
- Сортировка списка по индексам
- Генерация QR-кодов с Python
- Потоковый ввод в Python
- Python Метод del.
- split() без разделителя
- Удаление ссылок в Python
- Документирование функций в Python
- Функция zip() для объединения списков
- Управление контекстом выполнения кода
- Преобразование списка в словарь через генератор
- Big O оптимизация















