2012-08-05 174 views
-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" 
+1

請添加一些與不起作用的功能相關的代碼。 – phant0m 2012-08-05 07:56:10

+0

我個人不認爲這個功能與它有任何關係。我已經嘗試了許多不同的功能,並沒有奏效。這是錯誤---- AttributeError:'模塊'對象沒有屬性'OpenEmail' – bs7280 2012-08-05 08:07:47

+0

btw對不起,檢查編輯 – bs7280 2012-08-05 08:12:06

回答

2

除非模塊執行,否則函數不存在。你不能雙方都有。也許你需要在模塊中添加main stanza

+0

好吧,所以我想我知道如何處理主節。請檢查主文章中的編輯(如果您沒有看到它,我會在一秒鐘內添加),只是因爲我無法在評論中正確格式化 – bs7280 2012-08-05 07:45:38

0

問題是,你得到actions模塊返回。試試這個:

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

出現這種情況,當您嘗試導入子模塊,即module.something.somethingelse,你module返回。

+0

操作是一個文件夾,當我嘗試使用「/」字符我有語法錯誤問題。 – bs7280 2012-08-05 08:39:24

+0

@ user1270285是的,我知道它是一個文件夾。這就是Python模塊的工作原理。 '/'表示除法。你試過它是否有效? – phant0m 2012-08-05 08:45:19

+0

AttributeError:'module'對象沒有屬性'OpenEmail' – bs7280 2012-08-06 06:09:28