2013-07-13 146 views
0

我在我的Mac上玩Python,它是默認安裝版本2.7.2。出於某種原因,當我在當前目錄中導入文件時,它成功導入,但當我嘗試調用一個函數的文件中,它給了我:NameError: name 'gcd' is not defined導入文件後Python名稱錯誤

這是什麼文件(lab1.py)內:

def gcd(x, y): 
    if x % y == 0: 
     return y 
    else: 
     return gcd(y, x % y) 

def f(x): 
    return x*x 

在提示時,我只是鍵入import lab1。它成功導入。值得注意的是,如果我不在lab1.py目錄中,它會出錯,所以我知道它正在獲取正確的文件。我錯過了什麼?

回答

2

您需要通過您導入的全局名稱引用模塊中的名稱。

如果導入只是lab1,屆時提及的名字該模塊中的模塊對象的屬性:

lab1.gcd(10, 3) 

,或者您需要從導入名模塊:

from lab1 import gcd 

在當前模塊中創建相同功能的參考。另一種拼寫是:

import lab1.gcd as gcd 
+0

哦,哦。這就說得通了。出於某種原因,我不記得我上次遇到python時所遇到的情況。 –

相關問題