Курс 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
- Генерация фальшивых данных с Faker
- Множественное назначение в Python
- JSON-esque в Python
- Метод join() для объединения элементов
- Хранение данных
- Роль object и type в Python
- Фильтрация входных данных в Python
- Обратный список чисел
- Показ всплывающих окон Tkinter
- Переменная Шредингера
- Делегирование в Python
- Работа с Path в Python
- Рекурсия для обращения строки
- Функция с *args.
- Вычисление разности множеств в Python
- Копирование словарей и списков в Python
- Вывод с переменной через запятую
- Распаковка аргументов в Python
- Возврат нескольких значений
- Поиск шаблона в строке
- Получение имени функции с помощью inspect
- Проверка дублей в списке.
- Выход из профиля в Django
- Создание панели меню Tkinter
- Разделение строк в Python
- Срезы в Python
- Замыкания в Python
- Преобразование range в итератор
- Использование модуля math
- Создание вложенного генератора
- Возведение в квадрат с помощью itertools
- Создание и удаление объектов
- Преобразование текста в нижний регистр
- Сортировка и разворот списка
- Pretty-printing JSON в Python
- Python Enumerate
- Работа с множествами в Python
- Перемешивание списка с shuffle()
- Логирование с Loguru
- Retrying в Python: повторные вызовы
- Обновление и получение данных в SQLite
- Комплексные числа в Python
- Преобразование вложенного списка
- Структуры данных в Python
- Оптимизация поиска в словарях
- Разработка игры Pong с turtle















