0

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

4

0 回答 0