Курс 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. Блок else в циклах.
  3. Инверсия списка и строки в Python
  4. Защита данных в Python
  5. Гибкие функции Python
  6. Работа с *args и **kwargs в Python
  7. Преобразование чисел в восьмеричную строку
  8. Повторение элементов списков
  9. Потоковый ввод в Python
  10. Использование функции enumerate()
  11. Дизассемблирование Python кода
  12. Логические значения в Python
  13. Оператор break в Python
  14. Проверка файла .py на синтаксис.
  15. Декораторы с аргументами в Python
  16. Сравнение def и lambda в Python
  17. Лямбда-функции для min/max
  18. Аргументы *args и **kwargs
  19. Оператор «or» в Python
  20. Переопределение метода xor в Python
  21. Документация функции help() в Python
  22. Модуль inspect: получение информации о объектах
  23. Избегайте двойного подчеркивания
  24. Работа с изменяемыми списками
  25. Многострочные комментарии в Python
  26. Bootle — простой веб-фреймворк
  27. Поиск шаблона в начале строки
  28. Ограничение итераций в Python
  29. Распаковка с оператором *
  30. Структуры данных в Python
  31. Управление экспортом элементов
  32. Работа с Enum в Python3.
  33. Функции классификации комплексных чисел
  34. Перегрузка операторов в Python
  35. Тестирование модели в PyTorch
  36. Операции со строками в Python
  37. Транспонирование матрицы
  38. Принцип одной функции
  39. Оператор обр. импликации
  40. Копирование в Python
  41. Уникальные значения из списка
  42. Атрибуты массивов в Numpy
  43. Работа с файлами в Python
  44. Методы Python для работы с данными
  45. Многострочные строки в Python
  46. Создание GUI на Tkinter
  47. Установка и использование pyshorteners

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