所以在python中,变量赋值、参数传递,都只是拷贝了源数据的一个地址,而不会拷贝内存中完整的数据对象副本。所以,如果在函数内部修改变量指向的数据对象,会影响函数外部的数据。...y的默认值
# 此时z必须按key=value的方式传值
f(2,z=5)
# y、z都采用默认值
f(2)
变长参数:*
对于任意长度的参数,可以在def声明的函数中使用*将各位置参数收集到一个元组中...例如:
def f(*args):
print(args)
f(1,2,3,4)
上面调用f(1,2,3,4)的时候,将所有参数都收集到了一个名为args的元组中。...所以上面的函数将输出:
(1, 2, 3, 4)
既然是元组,就可以对参数进行迭代遍历:
def f(*args):
for arg in args:
print(arg)
f...,会按照位置参数对x赋值为1,然后将所有位置参数收集到元组args中,因为y=2是非位置参数传值方式,所以args=(3,4)。