Курс 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: основы
- Цикл for в Python
- Логирование с Logzero
- Оценка точности модели
- Генерация фальшивых данных с Faker
- Concrete Paths в Python
- Моржовый оператор в Python 3.8
- Заказ карты Тинькофф Black
- Управление памятью в numpy.
- Манипуляция формой массива в Numpy
- Функции min(), max(), sum()
- Разность множеств
- Функции в Python: создание и вызов
- Создание списка через итерацию
- Обработка исключений в Python
- Установка и загрузка Instaloader
- Основы Python за 14 дней
- Любовь к Python
- Работа со слайсами
- Показ всплывающих окон Tkinter
- Установка и использование библиотеки google
- Работа с Event() в threading
- Импорт в Python: список all
- Определение основы слова с showballstemmer
- Фильтрация последовательности
- SciPy: широкий функционал для математических операций
- Тестирование с unittest
- Измерение времени выполнения кода
- Освоение Python
- Метод __iand__ для пользовательских классов
- Возврат нескольких значений
- Импорт и использование модулей в Python
- Защита данных в Python
- Установка Python — Простое руководство
- Простой калькулятор Python
- Работа с IP-адресами в Python
- Сравнение неупорядоченных списков
- Разделение строки с помощью re.split()
- Метод split() для разделения строк
- Функции в Python
- Работа с кортежами в Python
- Фильтрация списков с itertools
- Создание множества в Python
- Оптимизация памяти с __slots__
- Генераторы в Python
- Удаление символа из строки
- Python reversed() функция















