Python 调用类对象时如何进行清理?

Python 调用类对象时如何进行清理?,python,Python,现在我有一个类将kwargs另存为字典。这是我的密码 class A: def __init__(self): self.dict = {} def __call__(self, **kwargs): self.dict = kwargs return self def get(self): return self.dict a = A() print(a(i=1, j=2).get()) print(a.get()) 调用a()时,将重置a

现在我有一个类将kwargs另存为字典。这是我的密码

class A:

  def __init__(self):
    self.dict = {}

  def __call__(self, **kwargs):
    self.dict = kwargs
    return self

  def get(self):
    return self.dict

a = A()
print(a(i=1, j=2).get())
print(a.get())

调用
a()
时,将重置
a.dict
。如果调用
a
时没有括号,我如何做同样的事情?因此,最后一行
a.get()
将返回
{}
,而不是
{i:1,j:2}

您始终可以返回代理对象,而不是
a
实例,以获取所需的语法

class A:

  def __call__(self, **kwargs):
    return B(kwargs)

  def get(self):
    return {}

class B:

    def __init__(self, d):
        self.d = d

    def get(self):
        return self.d

a = A()
print(a(i=1, j=2).get())
print(a.get())

首先,你不能那样做。第二,作为一个类,这没有任何意义——听起来你实际上并不想要任何持久状态。你应该用正常的方式构建dicts。“我有一个类将kwargs保存为dictionary。”这真的没有意义。。。已经有这样的课程了<代码>指令。。。