在Python中定义带有数组参数的函数时,该参数的作用域是什么?
此示例取自Python教程:
def f(a, L=[]):
L.append(a)
return L
print f(1)
print f(2)
print f(3)
输出:
[1]
[1, 2]
[1, 2, 3]
我不太确定,如果我明白这里发生了什么。这是否意味着数组的作用域在函数之外?为什么数组会记住呼叫时的值?来自其他语言,只要变量是静态的,我就会期待这种行为。否则,似乎应该每次都重置。实际上,当我尝试以下内容时:
def f(a):
L = []
L.append(a)
return L
我得到了我期望的行为(数组在每次调用时都被重置)。
所以在我看来,我只需要def f(a, L=[]):
解释这一行- L
变量的范围是什么?
相似问题