这是我正在处理的结构
class myclass():
def function(self):
class localclass():
params = {'a':1, 'b': 2}
return localclass
我想在类localclass中添加参数,但不是直接在类'myclass'定义中添加。 所以我想调用/覆盖函数和/或类localclass来使用方法
添加params params.update({'d': 4, 'e': 5})
我该怎么做?
感谢。
答案 0 :(得分:2)
你可以使用装饰者:
def update(func):
def wrapper(*args):
cls = func(*args)
cls.params.update({'d': 4, 'e': 5})
return cls
return wrapper
class myclass(object):
@update
def function(self):
class localclass(object):
params = {'a':1, 'b': 2}
return localclass
<强>演示:强>
>>> a = myclass()
>>> a.function().params
{'a': 1, 'b': 2, 'e': 5, 'd': 4}
答案 1 :(得分:1)
我认为您想要执行以下操作,无需修改任何当前代码:
>>> obj = myclass()
>>> cls = obj.function()
>>> cls.params.update({'d': 4, 'e': 5})
>>> cls.params
{'a': 1, 'b': 2, 'e': 5, 'd': 4}