Курс 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"
- Генераторные выражения и islice.
- Метод remove() для удаления элемента из списка
- Работа с модулем cmath
- Порядок и длина множеств в Python
- Поиск подстроки в строке
- Именованные срезы в Python
- Руководство по использованию Colorama
- Чтение и запись TOML-конфигов
- Быстрый поиск кода
- Вывод сложных структур данных с помощью pprint
- Форматирование кода на Python
- Работа с необработанными строками
- Многопоточность в Python
- GitHub в Telegram: подписка на уведомления
- Инверсия списков и строк в Python
- Взаимодействие с внешними процессами в Python
- Модуль inspect
- Удаление знаков препинания в Python
- Создание копии списка в Python
- Работа с временем в Python
- Преобразование объекта в строку
- Работа с срезами в Numpy
- Очистка списка от False, None, 0, «»
- Оператор (*) в Python
- Измерение времени выполнения кода
- Многострочные комментарии в Python
- Python Тесты и Гайды
- Модуль subprocess: запуск внешних команд
- Поиск частого элемента
- Добавление цвета в консоли
- Модуль math: основные функции
- Шаблоны и наследование в Flask
- Переопределение метода sub
- Хеширование паролей с использованием salt
- Управление ресурсами в Python
- Отправка поздравлений по дню рождения
- Тестирование с responses
- Функция с **kwargs в Python
- Преобразование текста в нижний регистр
- Объединение словарей в Python
- Получение обратного списка чисел
- Метод get() в Python
- Декоратор проверки активности
- Работа с прокси в Python















