Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Область видимості локальних, глобальних і нелокальних змінних | Область видимості змінних, вкладені функції та замикання
Концепції функціонального програмування в Python

bookОбласть видимості локальних, глобальних і нелокальних змінних

Свайпніть щоб показати меню

Розуміння того, як Python визначає область видимості змінних, є ключовим для написання зрозумілого та безпомилкового коду. Python використовує певний набір правил, відомий як LEGB rule, щоб вирішити, де шукати значення змінної. LEGB розшифровується як Local, Enclosing, Global, and Built-in. Коли ви звертаєтеся до змінної, Python шукає її значення у такому порядку:

  • Local: змінні, визначені у поточній функції або методі;
  • Enclosing: змінні у найближчій зовнішній області функції (якщо використовуються вкладені функції);
  • Global: змінні, визначені на верхньому рівні модуля або оголошені як global за допомогою ключового слова global;
  • Built-in: імена, які попередньо визначені у Python, наприклад, len або range.

Це правило дозволяє Python ефективно знаходити імена змінних і допомагає передбачити, звідки буде взято значення змінної. Іноді може виникнути потреба змінити змінні поза поточною областю функції. Python надає для цього два ключових слова: global і nonlocal. Ключове слово global дозволяє присвоїти значення змінній на рівні модуля, а nonlocal — змінити змінну у найближчій зовнішній області функції, яка не є глобальною.

123456789101112131415161718
# Global scope global_var = "I am global" def outer(): # Enclosing scope enclosing_var = "I am enclosing" def inner(): # Local scope local_var = "I am local" print("Local:", local_var) print("Enclosing:", enclosing_var) # Found in enclosing scope print("Global:", global_var) # Found in global scope print("Built-in:", len([1, 2, 3])) # 'len' comes from built-in scope inner() outer()
copy
  • Змінна global_var визначена в глобальній області видимості та доступна з будь-якого місця в модулі;
  • Усередині функції outer змінна enclosing_var створює вкладену область видимості, яка доступна для вкладених функцій;
  • Вкладена функція inner визначає local_var, яка існує лише в межах цієї функції та демонструє доступ до змінних з усіх вкладених областей видимості;
  • Функція len використовується для демонстрації того, як Python отримує імена з вбудованої області видимості.

Це показує, як Python знаходить значення змінних, послідовно шукаючи їх у локальній, вкладеній, глобальній та вбудованій областях видимості, що робить розв'язання імен змінних передбачуваним та організованим.

1. Що робить ключове слово nonlocal у Python?

2. Що таке правило LEGB?

question mark

Що робить ключове слово nonlocal у Python?

Виберіть правильну відповідь

question mark

Що таке правило LEGB?

Виберіть правильну відповідь

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 3. Розділ 1

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Секція 3. Розділ 1
some-alt