Курс 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"
- Удаление специальных символов с помощью re.sub
- Преобразование чисел в восьмеричную строку
- Многоточие в Python
- Подсчет элементов с помощью Counter
- Тестирование с responses
- Декораторы с @wraps
- Метод rpow в Python
- Изменение списка срезами
- Создание словарей с defaultdict
- Округление дробей в Python
- Присоединение элементов коллекции
- Проверка файла .py на синтаксис.
- Python defaultdict добавление ключа
- Форматирование вывода списков
- Новшества Flask 2.0
- Справка по импортированным модулям
- Оператор «and» в Python
- Генератор надежных паролей
- Работа с итераторами через срезы
- Идентификатор объекта в Python
- Метод ipow для возведения в степень
- Сериализация и десериализация объектов
- Сортировка в Python
- Работа со словарями в Python
- Регистрация на курсы SF Education
- Перевод эмодзи и эмотиконов.
- Работа с процессами в Python
- Python reversed() функция
- Применение функций в Python
- Установка пакета в Python
- Удаление ключа из словаря
- Форматирование строк в Python
- Улучшенные подсказки для импорта в Python 3.12
- Удаление элемента по индексу
- Срез в Python
- Работа с массивами в Python
- Функция reduce() из модуля functools
- Переменные в Python: сокращение гласных
- Работа с дробями в Python
- Модуль subprocess: запуск внешних команд
- Создание даты из строки ISO
- Функция map() и ленивая оценка
- Python Enumerate















