Курс 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 Calendar Usage
- Работа с дробями в Python
- Python Translator: создание локальных переводчиков
- Метод split() для разделения строк
- Проверка индексов коллекции
- Присвоение и ссылки
- Создание словаря через dict comprehension
- Оптимизация памяти с __slots__
- Замена текста с помощью sub
- Возвращение нескольких значений
- Метод rxor для операции побитового исключающего «или»
- Python: отсутствие точек с запятыми
- Назначение максимального и минимального значения переменной в Python.
- Работа со словарями Python
- Транспонирование матрицы в Python
- Преобразование данных в Python
- Преобразование строки в число
- Выключение компьютера с помощью Python
- Метод __ixor__ для побитового исключающего ИЛИ
- Срезы в Python
- Отправка HTTP-запросов в Python
- Отладка утечек памяти в Python
- Итераторы в Python
- Объявление переменных в Python
- Создание именованных кортежей в Python
- Перехват исключений в Python
- Структура строк в Python
- Генерация случайных чисел в Python
- Работа с множествами в Python
- Метод join() для объединения элементов строки
- Проверка ввода с помощью isdigit
- Pillow: работа с изображениями
- Применение функции к списку
- Применение команды break
- Повторение элементов списков
- Работа с изменяемыми списками
- Метод rpow в Python
- Исключение NotImplementedError
- Оператор is в Python
- Основные операции с Numpy
- Функции в Python
- Функция reversed() в Python
- Измерение времени выполнения в Python
- Область видимости переменных
- Работа с модулем cmath















