gpt4 book ai didi

python - 给定完整路径的模块中类列表的动态模块导入

转载 作者:行者123 更新时间:2023-11-30 23:54:23 25 4
gpt4 key购买 nike

首先,我认为我应该声明我已经阅读了以下问题:

而且,我觉得他们没有解决我的用例。也就是说,这是我的问题:

如何从这样的配置文件动态导入:

[imports]
/var/imports/foo.py = baz monkey
/var/imports/bar.py = ape

这样我就可以像这样通过 RESTful 接口(interface)调用已知对象。

# http://localhost/data?operation=get&class=baz&id=1
def handler(object):
def handle(self):
cls = instantiate(request.args["class"])
meth = request.args["operation"]
return getattr(cls,meth,request.args)

并且它可以响应该类的实例上的 get() 结果。

最佳答案

再看看第二个链接。它已经提到了 imp.load_source:

import imp

# some sort of shared dict for everything imported
loaded = {}

def load(path, from_list):
# load the path
module = imp.load_source( "dummy", path)
for name in from_list:
# add the names
loaded[name] = getattr(module, name)

#lets say you have this:
data = "/var/imports/foo.py", ["baz"]
load(*data)
print loaded['baz'] # whatever foo.baz was

现在你可以做这样的事情:

def instantiate( clsname ):
obj = loaded[clsname]
return obj()

我希望这能让您开始。

关于python - 给定完整路径的模块中类列表的动态模块导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5145378/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com