从命令行导入Python

时间:2016-11-09 08:36:31

标签: python python-import

我的目标是为用户提供动态选择一些strategy的能力,他可以在命令行中提供python文件。具有适当界面和所有其他OOP内容的(例如:myApp -s /some_path/SomeStrategy.py)策略。

那么,有没有能力实现这个?

2 个答案:

答案 0 :(得分:1)

在您与Strategy课程交互的所有代码中说,但您从未实现过。我认为下面的load方法可以解决这个问题:

def load(class) :
    global Strategy
    Strategy = class

这样,您只需将变量Strategy指向另一个类,因此在所有代码中,Strategy指的是用户加载的类。

当然,更好的方法是使用Application类,strategyClass属性,但同样的想法适用。

如果你想从命令文件加载它,它会变得有点棘手,但从Python的角度来看,这个想法保持不变。

答案 1 :(得分:1)

导入module。 name参数指定以绝对或相对术语导入的模块

  

(例如pkg.mod或..mod)。

如果以相对术语指定名称,则必须将package参数设置为包的名称,该包用作解析包名称的锚点

  

(例如import_module('.. mod','pkg.subpkg')将导入pkg.mod)。

importlib.import_module('os.path')