Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 函数外修改变量_Python - Fatal编程技术网

Python 函数外修改变量

Python 函数外修改变量,python,Python,我不明白这是为什么 d = 666 def default_due(a, b=d): print('a =', a, 'b =', b) d = 0 default_due(11) default_due(22,33) 而不是 a = 11 b = 666 a = 22 b = 33 由于不传递第二个参数的值,因此使用默认值。但是,在第二种情况下,当第二个参数的值也被传递时,默认值将被新值覆盖。因此,这将导致您观察到的输出。您甚至可以验证结果 有关更详细的说明,请参见: 由于未传递第二个参

我不明白这是为什么

d = 666
def default_due(a, b=d):
 print('a =', a, 'b =', b)
d = 0
default_due(11)
default_due(22,33)
而不是

a = 11 b = 666
a = 22 b = 33

由于不传递第二个参数的值,因此使用默认值。但是,在第二种情况下,当第二个参数的值也被传递时,默认值将被新值覆盖。因此,这将导致您观察到的输出。您甚至可以验证结果

有关更详细的说明,请参见:


由于未传递第二个参数的值,因此使用默认值。但是,在第二种情况下,当第二个参数的值也被传递时,默认值将被新值覆盖。因此,这将导致您观察到的输出。您甚至可以验证结果

有关更详细的说明,请参见:


发生这种情况是因为定义函数时,默认参数
b=d
只计算一次。之后,函数内的
d
值不会改变


阅读更多

发生这种情况是因为定义函数时,默认参数
b=d
只计算一次。之后,函数内的
d
值不会改变


阅读更多内容

请参见这是否也回答了您的问题?因为您没有在默认的函数中修改d的值。所以d将保持666,并且不会变为0,如果你只打印(d),那么它将是6。这也回答了你的问题吗?因为您没有在默认的函数中修改d的值。因此,如果只打印(d),d将保持666且不会更改为0,那么它将是6。问题是为什么默认值是
666
而不是
0
。问题是为什么默认值是
666
而不是
0
a = 11 b = 0
a = 22 b = 33