2015-09-18 65 views
-1

我對python比較陌生,而且我被這個錯誤所折服。 我有一個python腳本,有三個類,它們在開始時導入re。但是當我嘗試在類中的函數中使用re.search或re.sub時,它會給我提供錯誤「全局名稱未定義」。當我在方法中寫入import re時,這已解決。Python:全局名稱re沒有在函數中定義

我在做什麼錯?

import re 
class Temp: 
    def pluginSysLog(self): 
     import re 
     folderName= "plugin" 
     fileName=inspect.stack()[1][1].split("/")[len(inspect.stack()[1][1].split("/"))-1]     
     logObject = temp.loggerSetup("logObject", "/"+folderName+"/"+re.sub(".py",".log",fileName))  
     return logObject 

錯誤

File "./temp.py", line 151, in pluginSysLog 
    logObject = temp.loggerSetup("logObject", "/"+folderName+"/"+re.sub(".py",".log",fileName))  
NameError: global name 're' is not defined 
+5

我對看到產生這個錯誤的[mcve]很感興趣。 – Kevin

+2

顯示原始(錯誤)代碼。 –

+1

你調用'pluginSysLog()'的代碼在哪裏?函數調用是包含在同一個文件還是單獨的文件中? –

回答

1

不知道沒有更多的代碼,但是:

1)如果你已經在文件的頂級進口重,在全球範圍內,你不」 t需要重新導入該文件中的任何類別或功能

2)請注意,您沒有創建任何名稱爲「re」的變量,函數參數,成員變量等。

+0

1)我已經在頂部導入了re。這就是爲什麼我對這個錯誤感到困惑。 2)我沒有任何名爲re的變量。 – HighonH

相關問題