欢迎来到 常识词典网 , 一个专业的常识知识学习网站!
[ Ctrl + D 键 ]收藏本站
答案 1:
第三次的地址肯定是和其他三次不同的,你可以确认下。这里L默认绑定到一个指定的对象,f外面L是无法访问的,但是默认绑定的这个[]一直存在,下次调用f(a)时,L还会绑定到这个[]上,除非用两个参数调用,L就会绑定到给出的参数上。答案 2:
def f(a, L=[]): L.append(a) print(id(L)) return Lprint (f(1))print f.func_defaultsprint (f(2))print f.func_defaultsprint (f(3,[4,3]))print f.func_defaultsprint (f(5))print f.func_defaults这个代码应该能够说明:L的值在程序调用间是被保存在f.func_defaults这个元组里面了,所以能够在第一第二第四次调用间保存,或者说,类似于C里面的函数内静态变量;至于第三次调用,没有用默认参数。也可以参见这篇文章:effbot.org/zone...下一篇:国内大部分媒体的新闻标题都喜欢用“本·-”而不是“本·-”? 下一篇 【方向键 ( → )下一篇】
上一篇:知乎上很多人回答问题时直接拷贝其他人答案,从不标明出处? 上一篇 【方向键 ( ← )上一篇】
快搜