gpt4 book ai didi

python - Python 如何处理对其参数具有非局部影响的内部函数?

转载 作者:太空宇宙 更新时间:2023-11-03 13:14:02 27 4
gpt4 key购买 nike

考虑以下函数,我们不希望它在整数 a 上保持不变,但它始终返回 (1,2):

def foo(a):
b = 1
c = 2
def bar(b,c):
b = b + a
c = c + a
bar(b,c)
return (b,c)

如果我理解正确,实现 bar(b,c) 的惯用方法是完全不给它任何参数,并在其定义中声明 b 和 c 非本地。然而,我很好奇:我们如何使内部函数对其参数产生非局部影响?

最佳答案

this answer 中所述对于 Python 2.x:

Python doesn't allow you to reassign the value of a variable from an outer scope in an inner scope (unless you're using the keyword "global", which doesn't apply in this case).

这将返回 (2,3):

def foo(a):
b = 1
c = 2
def bar(b,c):
b = b + a
c = c + a
return b, c
b, c = bar(b,c)
return (b,c)

print(foo(1))

关于python - Python 如何处理对其参数具有非局部影响的内部函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35350483/

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