one*_*lf1 5 python closures parameter-passing
def a(b=[]):
b.append(1)
return b
print a()
print a()
Run Code Online (Sandbox Code Playgroud)
我突然得到了一张2元的名单,但是如何?不应该每次都被设置为空列表.
谢谢您的帮助
与闭合无关,至少不是通常意义上的闭合.
默认值b不是"新的空列表"; 它是"我在创建函数时刚刚创建的这个特定对象,将其初始化为空列表".每次在没有参数的情况下调用函数时,都会使用相同的对象.
| 归档时间: |
|
| 查看次数: |
162 次 |
| 最近记录: |