如果在定义函数时某个参数的默认值为一个变量,那么参数的默认值只依赖于函数定义时该变量的值。
示例:
a = 1
a = 4
def f(n = a):
m = n
j = a
print(n,m,j)
a = 5
f()
执行结果:
4 4 5
这里需要注意的是,函数的默认值只在函数被加载时调用一次,之后若不传值则一直会用加载函数时候设置的值,此值不会再改变。如果默认值设置的是个常量,其实不会对程序有什么影响,但是如果是变量的话,函数加载时被调用赋值,后续如果不传值直接调用函数,那么该参数默认是第一次被加载时的值。
传值调用函数,则按照传值进行函数运算
a = 1
a = 4
def f(n = a):
m = n
j = a
print(n,m,j)
a = 5
f()
f(a)
执行结果:
4 4 5
5 5 5