python,从模块调用函数的麻烦

时间:2012-08-05 07:02:26

标签: python import module

我导入了如下模块:

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"

2 个答案:

答案 0 :(得分:2)

除非模块执行,否则这些功能不存在。你不可能两种方式。也许您需要在模块中添加main stanza

答案 1 :(得分:0)

问题是,您返回了actions模块。试试这个:

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

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