在python中注册文件夹中所有类的最佳方法

2024-10-04 09:23:36 发布

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

我在一家相当大的公司做暑期实习生,我和另一个实习生的任务是用python从头开始编写后台服务(使用给定的规范)。我不能说我是Python专家,但我尽量编写好的代码并遵循良好的实践。为了方便地描述服务,它从buss(amqp-atm)接收消息,并将它们与模式匹配,并根据模式执行操作,所有这些都可以从json文件配置。你知道吗

为了切中要害,假定服务是通用的,因此开发人员应该能够添加不同的输入和输出类。这就是我现在的结构。你知道吗

  • 你知道吗服务.py你知道吗
  • 输入
    • __在所有初始化文件中
    • 你知道吗基本.py你知道吗
    • 你知道吗资产负债表你知道吗

在py服务你知道吗

from input import *
import input
#use input.base.sources

输入\基本.py你知道吗

sources = {}
def register_input(cls):
   sources[cls.input_name] = cls
   return cls

class InputBase(object):
    action(self, params):
...

输入\资产负债表你知道吗

@register_input
class AmqpInterface(InputBase):
    input_name = "amqp"
    action(self, params):
...

这是可行的,但它看起来不太好,而且它还产生了包含订单的问题。我和高级开发人员都想不出一种更为python的方法来解决这个问题。 你有什么办法用更优雅的方式解决这个问题吗?你知道吗


Tags: 文件namepyimportregisteramqpinput开发人员