非局部变量和全局变量有什么区别?

问题描述 投票:0回答:2

我正在学习编程语言的概念。

我在python语法中找到了术语“ nonlocal”。

python中非本地化是什么意思?

programming-languages python-nonlocal
2个回答
1
投票

非本地语句使列出的标识符引用最近的包围范围中的先前绑定的变量。这很重要,因为绑定的默认行为是首先搜索本地名称空间。该语句允许封装的代码在全局(模块)范围之外的本地范围之外重新绑定变量。

在非本地语句中列出的名称与在全局语句中列出的名称不同,必须引用封闭范围内的现有绑定(不能明确确定应在其中创建新绑定的范围)。

非本地语句中列出的名称不得与本地范围内的现有绑定冲突


0
投票

非局部变量存在于嵌套循环中。使用关键字nonlocal并采用最近的封闭循环中的值。一个例子是:def external():x =“ local”

def inner():
    nonlocal x
    x = "nonlocal"
    print("inner:", x)

inner()
print("outer:", x)

由于内部函数已更改x的值,因此两次输出均为“非本地”。

© www.soinside.com 2019 - 2024. All rights reserved.