gpt4 book ai didi

python - Python 中的词法作用域

转载 作者:太空宇宙 更新时间:2023-11-04 10:04:09 28 4
gpt4 key购买 nike

我正在学习 Python,更具体地说,我正在探索作用域规则。

我尝试了以下“实验”:

def increment(n): 
n += 1
print(n)
return n

n = 1
increment(n)
print(n)

这段代码输出: 2 , 1 ,既然变量 n 返回了全局环境,它不应该输出 2, 2 吗?

我们将不胜感激您的建议。

最佳答案

这里有两个不同的变量(名称):一个在全局范围内,另一个在increment 范围内。在 increment 中重新绑定(bind)本地的不会影响全局的,而 increment 返回它自己的 n 的事实对全局没有影响一个(他们有相同的名字这一事实是无关紧要的)。如果你想让全局 n 指向 increment() 返回的值,你必须明确地重新绑定(bind)它:

n = 1
print(n)
n = increment(n)
print(n)

关于python - Python 中的词法作用域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41893230/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com