2015-09-18 66 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

相关问题