从命令行导入Python

从命令行导入Python,python,python-import,Python,Python Import,我的目标是让用户能够动态地选择一些策略,他可以在命令行中以python文件的形式提供这些策略。(例如:myApp-s/some_path/SomeStrategy.py)具有适当接口的策略和所有其他面向对象的东西 那么,是否有能力实现这一点呢?假设在所有代码中,您都与策略类进行交互,但您从未实现过它。我认为下面的load方法应该可以做到这一点: def load(class) : global Strategy Strategy = class 这样,您只需使变量Strateg

我的目标是让用户能够动态地选择一些
策略
,他可以在命令行中以python文件的形式提供这些策略。(例如:myApp-s/some_path/SomeStrategy.py)具有适当接口的策略和所有其他面向对象的东西


那么,是否有能力实现这一点呢?

假设在所有代码中,您都与
策略类进行交互,但您从未实现过它。我认为下面的
load
方法应该可以做到这一点:

def load(class) :
    global Strategy
    Strategy = class
这样,您只需使变量
Strategy
指向另一个类,因此在所有代码中,
Strategy
指的是用户加载的类。 当然,更好的方法是使用
Application
类,该类具有
strategyClass
属性,但同样的想法也适用。
如果您想从命令文件加载它,它会变得有点棘手,但从Python的角度来看,想法是一样的。

导入
模块
。name参数指定要以绝对或相对方式导入的模块

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

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

(例如,导入模块(“…mod”,“pkg.subpkg”)将导入pkg.mod)

看一看。使用类的名称
SomeStrategy
作为命令行参数,使用
importlib
导入它。
importlib.import_module('os.path')