您好我正在寻找使用 Cmd 模块在 Python 中创建嵌套解释器。
我设置了一个动态模块加载,因为我希望我的项目易于扩展(即将一个新的 python 文件添加到一个文件夹中,并且无需更改能够加载它的主代码)。
我的嵌套解释器当前设置如下:
def instantiateConsole(base):
class SubConsole(cmd.Cmd, base):
def __init__(self):
cmd.Cmd.__init__(self)
def do_action(self,args):
print "Action"
return SubConsole
这是必要的,因为为了创建嵌套解释器,我必须将 MainConsole 作为第二个变量传递给 SubConsole 类。这样做的问题是,这样我只能在这个方法中创建类,并且我将无法添加一个新的控制台模块文件,我可以在没有此方法中的定义的情况下动态加载该文件。
有什么解决方法吗?