我正在写一个控制我们设备固件的软件包。该软件包将函数调用包装到共享库(Linux和Windows)。这些软件包包含许多模块,这些模块封装了共享库包装程序中的功能。该软件包将在内部使用,并可能由客户端使用。
为了加快开发速度,我们需要创建一个模拟包装器,以模拟对共享库的调用。这是一个结构示例:
import device_wrapper
import Module_A, ... Module_Z
class Device_0:
def __init__(self):
self.sub_device_0 = Module_A
self.sub_device_n = Module_Z
每个模块从包装器导入不同的功能。用户可以使用任何模块以及“设备”类。
现在,我正在寻找一种使用包中所有模块的方法,同时在某些情况下导入模拟包装,而在其他情况下导入真实包装。 类似于:
if mock_enable:
import mock as device_wrapper
else:
import device_wrapper
import Module_A, ... Module_Z
class Device_0:
def __init__(self):
self.sub_device_0 = Module_A
self.sub_device_n = Module_Z
mock_enable将由所有其他模块导入,并且将是管理导入的模块。
是否有更好的方法来做我想做的事? 我是否有任何陷阱?