名称错误: 未定义全局名称"myLogFile"



我有两个函数,我把其中一个函数放在一个单独的.py中,这样我就可以导入它,但当我试图运行脚本时,我遇到了一个错误。

我放在separate.py中的函数是:

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未在output_messaging函数中的任何位置定义。您需要在该函数中定义它,或者将它作为参数传入。

无论如何,你不应该使用全局变量,它们几乎总是一个坏主意。显式传递参数。

output_messaging中,您没有global myLogFile来指示myLogFile是在文件中的其他地方定义的。当Python运行该函数时,它现在无法识别该变量。

请注意,全局变量通常不受欢迎,但这是一个不同的讨论。

相关内容

  • 没有找到相关文章

最新更新