包装函数的Python模块

时间:2018-04-25 20:43:49

标签: python

我正在尝试编写一个通用模块,它提供充当特定实现的包装器的函数。 例如,我的main.py脚本将调用profile.py函数profile()。然后,profile.py将调用machineA或machineB measure()函数,具体取决于我传入的cmd行arg。

/main.py

    tools/profile.py  -- # provides function profile

          machineA/measure.py  # provides function measure

          machineB/measure.py # provides function measure

目前我的tools / profile.py执行此操作

if machine == 'machineA':
  from machineA import measure
else:
  from machineB import measure

def profile():
  return measure.measure()

我正在使用模块来执行此功能,我认为可能有一种方法可以使用类来完成此操作,但是我不太熟悉类以了解如何开始。任何提示将不胜感激。

1 个答案:

答案 0 :(得分:0)

简单(虽然很简陋)的方法是直接使用__import__

measure = __import__(machine).measure

稍微清洁就是使用importlib模块。

import importlib
measure = importlib.import_module(machine).measure