📅  最后修改于: 2023-12-03 15:24:58.774000             🧑  作者: Mango
在 Python 中,函数可以嵌套在另一个函数中,这样内部函数就可以访问外部函数的变量和参数。但是,当我们在这样的内部函数中定义另一个函数时,它只能在该内部函数中使用,而不能在外部函数和全局作用域中使用。
换句话说,如果函数之前的函数是全局的,函数内部的函数仍然是局部的。
例如,考虑下面的代码:
def outer():
def inner():
print("Hello from inner!")
print("Hello from outer!")
inner()
outer()
运行这段代码将会输出:
Hello from outer!
Hello from inner!
我们可以看到,内部函数 inner()
可以访问外部函数 outer()
的变量和参数,但是我们不能在外部函数或全局作用域中使用 inner()
。
如果我们尝试在外部函数或全局作用域中调用 inner()
,将会出现 NameError
:
def outer():
def inner():
print("Hello from inner!")
print("Hello from outer!")
inner()
outer()
inner() # NameError: name 'inner' is not defined
因此,我们可以得出结论,在 Python 中,无论函数是否全局,内部函数都是局部的。