-1

我导入了一个模块,如下所示:

filename = "email"
mymodule = __import__('actions.'+filename)

我遇到的问题是,文件正在立即执行,我更愿意从文件中执行特定的函数(这样我可以通过它发送变量)。

我基本上是在使用插件,所以它可以工作。

编辑:暂时,我不关心当我添加以下行时脚本是否执行:

mymodule = __import__('actions.'+filename)

但我想要工作的是当我添加下面的行时,我希望执行该函数。但是相反,我收到一个错误,即模块没有该功能,即使它存在于脚本中。

mymodule.dosomething(n)

编辑:我个人认为该函数与它没有任何关系,但这是我试图打开的一个 python 文件。

import webbrowser
def OpenEmail():
    handle = webbrowser.get()
    handle.open('http://gmail.google.com')
OpenEmail()
print "Your email has been opened"
4

2 回答 2

2

除非模块执行,否则这些功能不存在。你不能两全其美。也许您需要在模块中添加一个主要节

于 2012-08-05T07:07:06.017 回答
0

问题是,你得到了actions返回的模块。尝试这个:

mymodule = __import__('actions.'+filename)
for submodule in filename.split('.'):
    mymodule = getattr(mymodule, submodule)

当您尝试导入子模块时会发生这种情况,即module.something.somethingelse您被module退回。

于 2012-08-05T08:22:03.223 回答