我导入了如下模块:
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"
答案 0 :(得分:2)
除非模块执行,否则这些功能不存在。你不可能两种方式。也许您需要在模块中添加main stanza。
答案 1 :(得分:0)
问题是,您返回了actions
模块。试试这个:
mymodule = __import__('actions.'+filename)
for submodule in filename.split('.'):
mymodule = getattr(mymodule, submodule)
当您尝试导入子模块时会发生这种情况,即module.something.somethingelse
,您会返回module
。