猿问

如何更优雅的实现工厂模式或其他解决方法

场景是这样的
commands目录中会有一堆的py文件。每个文件都是一个class。每个class都有不同的方法。

比如

#user.pyclass user():
    def login():
        pass# order.pyclass order():
    def close(order_id):
        pass

像这种文件在commands目录中有很多,而且随时会增加或者减少。有一个daemon.py会根据MQ消息队列的命令动态的实例化某个命令并且传递对应的参数过去。

# daemon.py 伪代码import commandswhile True:
    message = json.loads(mq.receive())    if not hasattr(commands, message['class'])
        logger.warn("error")
    command = commands[message['class']]()
    command. message['action'] (message) ????

应该如何实现或者我不应该这么用python?用php用惯了吗?


qq_遁去的一_1
浏览 658回答 1
1回答

largeQ

module = __import__('module.%s' % modulename) class_ = module() func = getattr(class_, 'func') func()
随时随地看视频慕课网APP

相关分类

Python
我要回答