Курс 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. Сохранение и загрузка модели в PyTorch
  2. Протокол управления контекстом
  3. Работа с NumPy
  4. Преобразование кортежа в словарь.
  5. Измерение потребления памяти при сортировке
  6. Операции с кортежами
  7. Метод enumerate() в Python
  8. Dict Comprehension в Python
  9. Импорт классов из другого файла
  10. Типы возвращаемых значений в Python
  11. Применение функции к каждому элементу списка
  12. Измерение времени выполнения кода
  13. Добавление Progressbar в Python
  14. Модуль functools в Python
  15. Вычисление логарифмов в Python
  16. Тестирование с unittest
  17. Создание задания в Cron
  18. Реализация метода __abs__ в Python
  19. Python 3.12: переиспользование кавычек
  20. Нахождение максимального значения и его индекса в списке
  21. Установка и использование howdoi
  22. Удаление ссылок в Python
  23. Сохранение Unicode в JSON
  24. Работа с *args и **kwargs в Python
  25. Создание списка через итерацию
  26. Оператор match в Python
  27. Метод rlshift для битового сдвига
  28. Курс Data Scientist в медицине
  29. Отправка POST запроса на сервер.
  30. Метод __ixor__ для побитового исключающего ИЛИ
  31. Использование двоеточия в Python
  32. Работа с getopt
  33. Генераторы в Python
  34. Поиск с библиотекой Google
  35. Удаление элементов из списка в Python
  36. Объединение, распаковка и деструктуризация
  37. Документация функции help() в Python
  38. Декоратор для группы пользователей в Django
  39. Взаимодействие с внешними процессами в Python
  40. Создание списков в Python
  41. Область видимости переменных
  42. Модуль math: основные функции
  43. Оператор assert в Python
  44. Функции all и any в Python

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