我正在学习 Python,更具体地说,我正在探索范围规则。
我尝试了以下“实验”:
def increment(n):
n += 1
print(n)
return n
n = 1
increment(n)
print(n)
Run Code Online (Sandbox Code Playgroud)
这段代码输出: 2 , 1 ,既然变量 n 返回到全局环境,难道不应该输出 2, 2 吗?
您的建议将不胜感激。
这里有两个不同的变量(名称):一个位于全局范围内,另一个位于increment. 重新绑定本地一个increment不会影响全局一个,并且increment返回它自己的事实n对全局一个也没有影响(它们具有相同的名称这一事实无关紧要)。如果你想让全局n指向 返回的值increment(),你必须明确地重新绑定它:
n = 1
print(n)
n = increment(n)
print(n)
Run Code Online (Sandbox Code Playgroud)