我对 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=[] 作为参数)。