Курс 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
- Доступ к локальным переменным
- Избегайте двойного подчеркивания
- Измерение времени выполнения кода
- Контроль точности вывода чисел
- Работа с itertools
- Простой калькулятор Python
- Проверка подстроки в строке с помощью in
- Удаление элементов из списка в Python
- Работа с изображениями PIL
- Модуль xkcd: загрузка комиксов
- Преобразование строки в число
- Оператор assert в Python
- Создание словаря и множества
- Именованные кортежи в Python
- Мониторинг работы программы Py-spy
- Изменение объектов в Python
- Вывод с переменной через запятую
- Резервирование символов в Python
- Работа с deque из collections
- Генераторы в Python
- Документация функции help() в Python
- Цикл for в Python
- Объединение строк с помощью метода join
- Поиск индекса элемента
- Создание файла с проверкой ошибки
- Ввод нескольких значений
- Декодирование строк в Python
- Создание графики с черепахой
- Блок else в циклах Python
- Форматирование строк с % в Python
- Оператор объединения словарей
- Профилирование кода на Python
- Функция rsplit() в Python
- Метод join() для объединения элементов строки
- Логирование с Logzero: ротация файла
- Инициализация структур данных
- Методы list в Python
- Операторы присваивания в Python
- Фильтрация элементов с помощью islice
- Ускорение выполнения кода в Python
- Подписка на каналы разработчиков
- Объединение словарей в Python















