Курс 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. Замена текста с помощью sub
  2. Настройка Cron
  3. Очистка вывода в Python
  4. Получение комбинаций в Python
  5. Поиск анаграмм с Counter
  6. Работа с файлами в Python
  7. Расчет времени выполнения
  8. Метод join для объединения строк
  9. Именованные аргументы в Python
  10. Декораторы в Python
  11. Расчет времени выполнения кода
  12. Каналы Senior: Python, Java, Frontend, SQL, C++
  13. Объявление переменных в Python
  14. Namedtuple в Python
  15. Представление бесконечности в Python
  16. Модуль os: работа с файлами и папками
  17. Создание таблиц в терминале с PrettyTable
  18. Defaultdict в Python
  19. Подписка на SelectelNews в Twitter
  20. Явный импорт переменных
  21. Блок else в циклах.
  22. Объединение словарей в Python
  23. Обмен значений переменных в Python
  24. Просмотр атрибутов и методов класса
  25. Принципы программирования
  26. Раздувающийся словарь в Python
  27. Метод __irshift__ для побитового сдвига вправо
  28. Измерение времени выполнения кода
  29. Распаковка аргументов в Python
  30. Поиск простых чисел
  31. Инверсия списка и строки
  32. Генератор надежных паролей
  33. Модуль xkcd: добавление юмора в Python
  34. Работа с классами данных
  35. Генераторные функции в Python
  36. Извлечение статей с newspaper3k
  37. Передача словаря через **kwargs
  38. Получение списка кортежей из словаря
  39. Оператор += в Python
  40. Переопределение метода sub
  41. Сериализация данных в JSON с помощью json.dumps
  42. Удаление специальных символов с помощью re.sub
  43. Управление браузером с Selenium
  44. Игра «Камень, ножницы, бумага» — Python
  45. Работа с deque из collections
  46. Форматирование строк в Python

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