Курс 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. Непрерывная проверка в Python
  2. Быстрый поиск кода
  3. Профилирование данных с Pandas.
  4. Конкатенация строк с помощью join()
  5. Модуль pprint
  6. Асинхронное программирование с asyncio
  7. Отладчик pdb: начало работы
  8. Лямбда-функции в цикле
  9. Python Метод Union Множеств
  10. Преобразование регистра символов
  11. Виртуальные среды в Python
  12. Работа с массивами в Numpy
  13. Операции с датами в Python
  14. Работа со стеком в Python
  15. Генераторы в Python
  16. Ошибка NotImplemented в Python
  17. JMESPath в Python
  18. Изменение объектов в Python
  19. Логические значения в Python
  20. Создание словарей и множеств в Python
  21. Форматирование вывода списков
  22. Методы работы со строками в Python
  23. Работа с OpenCV
  24. Избегание изменяемых аргументов
  25. Многоточие в Python
  26. Использование модуля math
  27. Абстракции словарей и множеств в Python
  28. Аргументы *args и **kwargs
  29. Добавление элементов в список: append() vs extend()
  30. Управление памятью в Python
  31. Установка и использование TensorFlow
  32. Работа с *args и **kwargs в Python
  33. Модуль array: создание и использование массивов
  34. Открытие и редактирование скриптов Python
  35. Форматирование строк в Python.
  36. Перетасовка списков в Python
  37. Работа с deque из collections
  38. Решатель судоку на Python с pygame
  39. Иерархия классов в Python
  40. Форматирование строк в Python
  41. Делегирование в Python
  42. Отображение HTML кода в Python
  43. Генератор списка с условием if
  44. Создание именованных кортежей в Python
  45. Bootle — простой веб-фреймворк
  46. Ключевое слово global в Python
  47. Разбиение строки в Python
  48. Модуль functools в Python
  49. Enum в Python
  50. Срезы в Numpy

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