Курс 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
- Разработка Telegram-ботов
- Вычисление натуральных логарифмов в NumPy
- Группировка элементов Python
- SciPy: широкий функционал для математических операций
- Парсинг статей с Newspaper3k
- Преобразование символов с помощью map
- Создание спинбокса в tkinter
- Навыки Python: строки, типы данных
- Namedtuple в Python
- Метод rename() для переименования файлов и каталогов
- Работа с кортежами
- Отображение HTML кода в Python
- Метод rsub в Python: расширение функциональности вычитания
- Функции-генераторы в Python
- Профилирование кода
- Округление дробей в Python
- Игра «Камень, ножницы, бумага» — Python
- Кортеж в Python: создание, доступ, изменение
- Профилирование кода на Python
- Преобразование регистра символов
- Использование defaultdict в Python
- Переворот строки
- Разделение строк методом split()
- Объединение словарей в Python 3.5+
- Многоточие в Python
- Принципы программирования
- Работа с defaultdictами в Python
- Удаление элемента по индексу в Python
- Дизассемблирование Python кода
- Оформление кода на Python
- Оператор += в Python
- Возведение в квадрат с помощью itertools
- Метод __irshift__ для побитового сдвига вправо
- JMESPath в Python
- Работа с классами данных
- Генераторы в Python
- Поиск самого длинного слова в списке с использованием max()
- Библиотека Chartify: руководство
- Функция enumerate() в Python
- Конвертация текстовых чисел с помощью Numerizer
- Flask — веб-фреймворк Python















