我以为我已经学习了 python,并且参数/参数(这是正确的术语?)只是方法中的局部变量,如果它们没有在方法调用中声明,那么它们将采用它们定义的默认值。这个例子清楚地表明我错了:
这段代码
def example(foo=[]):
print foo
bar = 'Hello world'
foo.append(bar)
return foo
print example()
print example()
打印出这个
[]
['Hello world']
['Hello world']
['Hello world', 'Hello world']
我原以为它会打印出来:
[]
['Hello world']
[]
['Hello world']
为什么不会发生_?
我知道
print example([])
print example([])
打印出我的期望。但这有点错过了拥有默认值的意义..
奖励信息:使用 Python 2.7.3 和 IPython