1

这是我正在处理的结构

class myclass():
    def function(self):
        class localclass():
            params = {'a':1, 'b': 2}
        return localclass

我想在类localclass中添加参数,但不是直接在类'myclass'定义中。所以我想调用/覆盖函数和/或类 localclass 以使用该方法添加参数

params.update({'d': 4, 'e': 5})

我怎么做?

谢谢。

4

2 回答 2

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}
于 2013-09-10T16:28:53.647 回答
1

我认为您想要执行以下操作,无需修改任何当前代码:

>>> obj = myclass()
>>> cls = obj.function()
>>> cls.params.update({'d': 4, 'e': 5})
>>> cls.params
{'a': 1, 'b': 2, 'e': 5, 'd': 4}
于 2013-09-10T16:29:43.300 回答