Курс 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"
- Работа с контекст-менеджером «with»
- Метод gt в Python
- Генерация фальшивых данных с Faker
- Синхронизация доступа к ресурсам
- Преобразование списков в словарь
- Передача аргументов через **arguments
- Работа с collections.Counter
- Преобразование букв в нижний регистр
- Печать календаря в Python
- Подсчет вхождений элементов
- Создание и операции с дробями
- Модуль functools в Python
- Работа с множествами в Python
- Именование переменных в Python
- Перебор элементов списка в Python
- Работа с временем в Python
- Настройка Cron
- Хеширование паролей с солью
- Управление сессиями в Python
- Метод __irshift__ для побитового сдвига вправо
- Структура данных deque в Python
- Возврат нескольких значений из функции
- Методы Python для работы с данными
- Monkey Patching в Python
- Удаление пробелов методом translate()
- Изменение переменной в Python: nonlocal
- Оптимизация создания строк
- Оператор «моржа» (Walrus Operator)
- Генераторы списков в Python
- Управление User-Agent в Python
- Создание итератора
- Создание списка через итерацию
- Lambda-функция в Python: использование с map() и sum()
- Работа с необработанными строками
- Метод count() для списка
- Основы работы с базами данных в Python
- Аргумент по умолчанию
- Отладка утечек памяти в Python
- Разделение строки с помощью re.split()
- Форматирование строк в Python
- Работа с географическими данными в Python
- Округление в Python
- Тип данных TypeVarTuple
- Работа с файловой системой в Python
- Объединение Python и Shell
- Создание Telegram-бота на Python















