python函数参数的默认值


#函数参数的默认值只会执行一次
def f(a, L=[]):
L.append(a)
return L
print(f(1))
print(f(2))
print(f(3))
对于这个函数而言,在调用的时候没有传递第二个参数,则由于函数参数的默认值只会执行一次,即初始化L = []一次,
L被赋予了列表对象的一个内存空间,地址不可变,由于列表可变的特性,每次调用只会在原来的列表上追加,并不会创建
新的列表。
输出结果:      

  [1]
  [1, 2]
  [1, 2, 3]

def _f(a, L = None):
if L is None:
L = []
L.append(a)
return L
print(_f(1))
print(_f(2))
print(_f(3))
对于这个函数来说,参数初始化的时候,默认值只会执行一次,可以假设L指向内存的0号空间,不管后面怎么改变赋值,
接下来再调用这个函数的时候L都会指向0号空间。
输出结果:

  [1]
  [2]
  [3]


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM