默认的可变参数:它在内部如何工作?

时间:2015-02-13 13:37:35

标签: python python-2.7 python-internals

所以我知道默认的可变参数getcha,但我想了解它是如何在内部工作的:

In [1]: def f(a=[]):
   ...:     a.append(1)
   ...:     print a
   ...:     

In [2]: f()
[1]

In [3]: f()
[1, 1]

由于列表未在两个函数调用之间取消分配,因此必须在函数调用中存在对该列表的引用。但是,查看globals()并未显示任何内容。是否存在与函数声明def f(a=[]):关联的某种命名空间,其中参数a绑定到列表?这是列表通过函数调用存活的原因吗?

0 个答案:

没有答案