我有以下情况:
class Parser():
def _parse_human(self, record):
"""returns parsed Human"""
return
def _parse_animal(self, record):
"""returns parsed Animal"""
return
def _parse_vehicle(self, record):
"""returns parsed Vehicle"""
return
def parse_object(self, record):
"""Should select the correct parsing method"""
return
if __name__ == '__main__':
parser = Parser()
record = someObject.get_record()
parsed_object = parser.parse_object(record)
我希望parse_object()
方法查找并执行相应的解析方法,而不使用明确的if-else语句。
传入的记录包含一个包含数据库表名的字段,因此我可以确定应该将哪个对象解析为。
有没有办法在没有将函数显式映射到if-else语句中的表名字符串的情况下使其工作?我的目标是以后能够添加实体,而不必每次都更新if-else语句。
有没有任何pythonic方法来实现这一目标?我只是熟悉设计模式,策略模式似乎是一种合适的方法。但我不确定这是一种Pythonic的做事方式。