Python 名称错误:全局名称';myLogFile';没有定义
我有两个函数,我将其中一个函数放在一个单独的.py中,这样我就可以导入它,但是当我尝试运行脚本时,我遇到了一个错误 我放在单独的.py中的函数是:Python 名称错误:全局名称';myLogFile';没有定义,python,global-variables,Python,Global Variables,我有两个函数,我将其中一个函数放在一个单独的.py中,这样我就可以导入它,但是当我尝试运行脚本时,我遇到了一个错误 我放在单独的.py中的函数是: def output_messaging(message): global myEmailText myLogFile.write(message) myEmailText = myEmailText + message print message 我运行的脚本具有以下代码: def finish_process(e
def output_messaging(message):
global myEmailText
myLogFile.write(message)
myEmailText = myEmailText + message
print message
我运行的脚本具有以下代码:
def finish_process(errors):
global myLogFile
myLogFile.close()
if errors == 0:
myEmailHeader = "Subject: **"
elif errors == 1:
myEmailHeader = "Subject: **"
else:
myEmailDestination.append("**")
#myEmailHeader = "Subject: **"
server = smtplib.SMTP(myServer) #email data log to nominated individuals
server.sendmail(myEmailSender, myEmailDestination, myEmailHeader + "\n" + myEmailText)
server.quit()
当我运行脚本时,我得到以下错误
NameError: global name 'myLogFile' is not defined
myLogFile在代码中声明得更低(这是日志文件的位置),但我有点困惑
谢谢错误很明显<代码>myLogFile未在
输出消息
功能中的任何位置定义。您需要在该函数中定义它,或将其作为参数传入
无论如何,你不应该使用globals,它们几乎总是一个坏主意。显式传递参数。在
输出消息中,您没有全局myLogFile
来指示myLogFile
是在文件中的其他地方定义的。当Python运行该函数时,它现在无法识别该变量
请注意,通常不鼓励使用全局变量,但这是一个不同的讨论。如果您向我们展示了一个完整、简短的示例来演示问题,我们将能够告诉您问题的确切原因…文件“d:\temp\UFRM\messaging.py”,第4行,在输出\消息myLogFile.write(消息)中NameError:全局名称“myLogFile”未定义我已在输出消息功能中添加了全局myLogFile,但它仍会给我相同的错误。