Курс 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"
- Инициализация структур данных
- Преобразование Word в PDF с Spire.Doc
- Очистка входных данных
- Возврат нескольких значений
- Функции map() и reduce() в Python
- Подсчет частоты элементов с Counter
- Работа с датой и временем в Python
- Вызов внешних программ в Python с помощью sh
- Фильтрация входных данных в Python
- Хеширование паролей с солью
- Работа с срезами в Numpy
- Участие в LP стейкинге Waves
- Декоратор @override
- Сравнение строк в Python
- Поиск простых чисел
- Функции map, filter, reduce
- Метод __call__ в Python
- Python enumerate() использование
- Сохранение Unicode в JSON
- Получение частей дроби
- Метод rsub в Python: расширение функциональности вычитания
- Слияние словарей в Python 3.9
- Удаление элементов из списка в Python
- ChainMap избыточные ключи
- Работа с комбинациями в Python.
- Склеивание строк без циклов
- Генераторы в Python
- Установка максимального количества цифр
- Форматирование заголовков в Python
- Оптимизация памяти в Python
- Запрос DELETE с библиотекой requests
- Управление User-Agent в Python
- Numpy: использование Ellipsis
- Функция zip() в Python
- Магические методы в Python
- Оптимизация гиперпараметров в Python
- Возвращение нескольких значений через кортеж или класс
- Генераторы списков
- Операторы += в Python
- Работа с файловой системой в Python
- Замыкания в Python
- Фильтрация данных в Python.
- Установка и использование pyshorteners
- Создание циклической ссылки
- Аннотации типов в Python
- Измерение времени выполнения кода с использованием time
- Генераторы в Python
- Возвращение нескольких значений















