我有一个值字典并初始化一个对象。
字典值包含对象的所有模块,那么如何实现这样的目标?

test_action = {
    '1': 'addition',
    '2': 'subtraction'
}

class test:
    def __init__(self, a,b,c):
        self.a = a
        self.b = b
        self.c = c

    def addition(self):
        return self.a + self.b + self.c

    def subtraction(self):
        return self.a - self.b - self.c


def main():
    xxx = test(10,5,1)
    for key,action in test_action.items():
        print(xxx.action())

最佳答案

您应该将函数称为对象而不是字符串,以便:

class test:
    def __init__(self, a,b,c):
        self.a = a
        self.b = b
        self.c = c

    def addition(self):
        return self.a + self.b + self.c

    def subtraction(self):
        return self.a - self.b - self.c

test_action = {
    '1': test.addition,
    '2': test.subtraction
}

xxx = test(10,5,1)
for key, action in test_action.items():
    print(key, action(xxx))


将输出:

1 16
2 4

10-04 22:52
查看更多