这是我正在处理的结构

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


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

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

我怎么做?

谢谢。

最佳答案

您可以使用装饰器:

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}

10-05 18:51