如何创建将键映射到类方法并同时初始化此对象的字典对象

2024-03-29 14:41:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在创建一个解析器,我要做的是一个方法,它初始化字典中指定的类的对象,然后调用该类上的方法。对象应该在运行时创建,其他每次调用此方法时创建。这很复杂,我想有些伪代码可以更好地解释:

# some_method places intialized object in some list    

dictionary_map = { 'foo': Bar.some_method, 'foo2': Bar2.some_method }

def parse_lines(lines):
    for line in lines:
        for key in dictionary_map: 
            if line.startswith(key):  # checking if line matches dict value
                dictionary_map[key](line)

我知道我可以通过这样的“自我”论证:

^{pr2}$

但那不是我想做的。这本词典相当大,有许多类目。我试过这样的方法:

dictionary_map = { 'foo': Bar.some_method(object.__new__(Bar)) }

但从一眼望去,我就知道它不应该是这样的:)


Tags: 对象方法keyinmapfordictionaryif
1条回答
网友
1楼 · 发布于 2024-03-29 14:41:13

一种方法(如果我理解正确的话)是分别使用包含类和方法的元组:

dictionary_map = {'foo': (Bar, 'some_method'), 'foo2': (Bar2, 'some_method')}

然后,可以创建类的新实例并调用其方法,如下所示:

^{pr2}$

这意味着您可以根据需要对实例执行更多操作。在

相关问题 更多 >