Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Non-local Scope | Scopes
Mastering Python: Closures and Decorators
course content

Conteúdo do Curso

Mastering Python: Closures and Decorators

Mastering Python: Closures and Decorators

1. Scopes
2. Closure
3. Decorators

bookNon-local Scope

The non-local scopes are outer local scopes. This means that the non-local scope is placed between global scope and function local scope:

Let's look at the code example:

123456789101112131415161718
def first_outer(): first = "first_outer() local scope" def second_outer(): second = "second_outer() local scope" def inner(): third = "inner() local scope" print("Inner non-local:", first) print("Inner non-local:", second) print("Inner local:", third) inner() second_outer() first_outer()
copy

The first_outer() local and second_outer() local scope are non-local scopes for the inner() function.

Access to change non-local objects

You can change the non-local variable or another object using the nonlocal keyword (similar to the global keyword):

12345678910111213
def outer(): some_variable = 255 def inner(): nonlocal some_variable print(some_variable) some_variable += 233 print(some_variable) inner() outer()
copy

Note

Why pay attention to non-local scope?
The non-local scope is used for the closure. That's why non-local scope is also named enclosing scope. The closure will be described in the next section.

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 1. Capítulo 4
some-alt