我对Python中的新实例有疑问。 以下代码作为最小示例
class A(object):
def __new__(cls, *p, **k):
inst = object.__new__(cls)
return inst
def __init__(self, params=[]):
self.params = params
def add_param(self, p):
self.params.append(p)
a = A()
print a.params
a.add_param(1)
a.add_param(2)
print a.params
b = A()
print b.params
带输出
[]
[1, 3]
[1, 3]
根据我的基本理解,我怀疑,b
也会有一个空的参数列表。但是,b
是使用添加到a
的参数创建的。
所以,我的问题是:为什么这样,我怎样才能在没有任何参数的情况下实例化b(除了明确地提供params = []作为参数)。