Курс 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
- Замена текста с re.sub()
- Множественное назначение в Python
- Работа со словарями Python
- Асинхронное выполнение задач в процессах
- Декораторы в Python
- Python Calendar Usage
- Функция findall() для поиска вхождений строки
- Использование модуля __future__
- Работа со строками в Python
- Списки в Python
- Работа с асинхронными задачами в Python
- Генератор списка в Python
- Работа с очередями в Python
- Отрицательные индексы списков
- Работа с JSON в Python
- Область видимости переменных
- Сравнение def и lambda функций в Python
- Flask — веб-фреймворк Python
- Импортирование в Python
- Изменение элемента списка
- Метод init в Python
- Управление контекстом выполнения
- Удаление эмодзи с помощью pandas
- Создание таблиц в Python с PrettyTable
- Создание списков в Python
- Построение графиков в Matplotlib
- Namedtuple в Python
- Основные операции с Numpy
- Декораторы в Python
- Транспонирование 2D-массива с помощью zip
- Python UserString — создание подклассов строк
- Lambda-функция в Python: использование с map() и sum()
- Python 3.12: переиспользование кавычек
- Нахождение хеша для бесконечности и NaN в Python
- Работа с комплексными числами
- Особенности запятых в Python
- Функция print() — вывод информации
- Проверка списка: any() и all()
- Присвоение и ссылки
- Преобразование типов данных в set comprehension
- Отладка регулярных выражений в Python
- Работа с аргументами командной строки
- Методы обработки строк в Python
- Проверка окончания строки с помощью str.endswith()
- Создание графиков в терминале
- Дизассемблирование Python кода
- Многострочные строки в Python
- Участие в LP стейкинге Waves















