现在我有一个类可以将 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.dict
时将重置 a()
。当不带括号调用 a
时,我如何做同样的事情?所以最后一行 a.get()
将返回 {}
而不是 {i: 1, j: 2}
。
答案 0 :(得分: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())