看下面的代码:
def foo (x):
print("foo environment: x = {0}".format(x))
def bar (z, x = 0):
print("bar environment: z = {0} and x = {1}. Value to be returned: {2}".format(z, x, x+z))
return z + x
return bar(3)
foo(5)
foo environment: x = 5
bar environment: z = 3 and x = 0. Value to be returned: 3
3
既然在foo环境中x = 5,为什么bar使用值0?
您的建议将不胜感激。
答案 0 :(得分:1)
您在这里只传递了一个参数:
return bar(3)
bar函数接受两个值,一个z
和一个x
(x的默认值为(0),这就是为什么只有1个参数就足够了)。仅通过传递z
,x = 0。
尝试一下,看看会发生什么:
return bar(3, x)