Курс 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"

  1. Удаление элементов из списка
  2. Работа с аргументами командной строки
  3. Списки в Python: основы
  4. Цикл for в Python
  5. Логирование с Logzero
  6. Оценка точности модели
  7. Генерация фальшивых данных с Faker
  8. Concrete Paths в Python
  9. Моржовый оператор в Python 3.8
  10. Заказ карты Тинькофф Black
  11. Управление памятью в numpy.
  12. Манипуляция формой массива в Numpy
  13. Функции min(), max(), sum()
  14. Разность множеств
  15. Функции в Python: создание и вызов
  16. Создание списка через итерацию
  17. Обработка исключений в Python
  18. Установка и загрузка Instaloader
  19. Основы Python за 14 дней
  20. Любовь к Python
  21. Работа со слайсами
  22. Показ всплывающих окон Tkinter
  23. Установка и использование библиотеки google
  24. Работа с Event() в threading
  25. Импорт в Python: список all
  26. Определение основы слова с showballstemmer
  27. Фильтрация последовательности
  28. SciPy: широкий функционал для математических операций
  29. Тестирование с unittest
  30. Измерение времени выполнения кода
  31. Освоение Python
  32. Метод __iand__ для пользовательских классов
  33. Возврат нескольких значений
  34. Импорт и использование модулей в Python
  35. Защита данных в Python
  36. Установка Python — Простое руководство
  37. Простой калькулятор Python
  38. Работа с IP-адресами в Python
  39. Сравнение неупорядоченных списков
  40. Разделение строки с помощью re.split()
  41. Метод split() для разделения строк
  42. Функции в Python
  43. Работа с кортежами в Python
  44. Фильтрация списков с itertools
  45. Создание множества в Python
  46. Оптимизация памяти с __slots__
  47. Генераторы в Python
  48. Удаление символа из строки
  49. Python reversed() функция

Marketello читают маркетологи из крутых компаний