Курс Python → Разрешение имен в Python

При разработке на Python важно понимать механизм разрешения имен, который игнорирует область видимости класса. Когда мы определяем класс, все области, вложенные внутри этого класса, не будут иметь доступ к именам, которые связаны на уровне класса. Это означает, что если внутри класса мы определяем функцию или другой класс, то она не сможет обратиться к переменным, объявленным в самом классе.

Для решения этой проблемы можно использовать ключевое слово self, которое позволяет обращаться к переменным класса из внутренних областей. При обращении к переменным класса из методов класса необходимо использовать синтаксис self.имя_переменной.

Пример:


class MyClass:
    class_variable = 10
    
    def my_method(self):
        print(self.class_variable)
        
    class MyNestedClass:
        def nested_method(self):
            # Нельзя обратиться к class_variable напрямую
            # print(class_variable) 
            # Но можно обратиться через self
            print(self.class_variable)

В данном примере мы определяем класс MyClass с переменной class_variable и методом my_method, который обращается к переменной класса через self. Также у нас есть вложенный класс MyNestedClass, в методе которого также можно обратиться к переменной класса через self.

Таким образом, понимание механизма разрешения имен в Python позволяет эффективно организовывать код и избегать ошибок, связанных с областями видимости переменных внутри классов.

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Установка и использование Telegram API в Python
  2. Декораторы с @wraps
  3. Добавление элемента к кортежу
  4. capitalize() — изменение регистра первого символа строки
  5. Работа с типами данных в Python с помощью pydantic.
  6. Тест скорости набора текста на Python
  7. Регистрация на TenChat
  8. Замена текста в Python
  9. Многострочные строки в Python
  10. Названия столбцов в Python таблицах
  11. Обработка исключений
  12. Переопределение метода __lshift__
  13. Модуль Antigravity в Python 3
  14. Поиск самого частого элемента
  15. Делегирование в Python
  16. Обработка данных в Python
  17. Аннотации типов в Python
  18. Создание списка дат
  19. Очистка списка от False, None, 0, «»
  20. Сортировка с параметром key
  21. Избегание изменяемых аргументов
  22. Magic Commands — улучшение работы с Python
  23. Python OrderedDict и fromkeys() — работа с словарями
  24. Декоратор для группы пользователей в Django
  25. Итерация по копии коллекции
  26. Создание функций высшего порядка
  27. Работа с базами данных SQLite
  28. Получение имени функции с помощью inspect
  29. Добавление вложенных списков
  30. Оператор * в Python
  31. Логирование с Logzero
  32. Создание словарей в Python
  33. Регулярные выражения: метод match
  34. Вызов функций по строке в Python.
  35. Ошибка NotImplemented в Python
  36. Оформление кода по PEP 8
  37. Определение наиболее частого элемента с помощью collections.Counter
  38. Возврат нескольких значений
  39. Создание новой даты в Python
  40. Очистка строки в Python
  41. Генераторы в Python
  42. Метод __irshift__ для Python
  43. Тернарный оператор в Python
  44. Операции с числами в Python
  45. Оптимизация памяти с slots
  46. Python и Монти Пайтон

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