名称 "simStatus" 未定义

name "simStatus" is not defined

def newFunction():

   global simStatus

   makeResultWrite = open ("file.txt", "w")   
   readLogFile = open("xyz.log", "r")
   checkLine = readLogFile.readline()

   while (checkLine): 

       if((re.search('^\#\s+!tpr!',checkLine))):
           if (re.search("PASSED", checkLine)):
               simStatus = "Pass"
       makeResultFile.write('{} \n'.format(simStatus))
       checkLine = readLogFile.readline()

以上是我完整代码的一部分。我正在尝试在 makeResultFile 中写入单词 "Pass"。当我编译代码时,出现错误 "Name "simStatus" is not defined"。我正在使用 python 3。我不想直接使用函数 makeResultFile.write(),因为我的代码中还有其他一些依赖循环。请提出解决此错误的方法。谢谢。

您应该将共享状态封装在一个对象中,然后将该对象传入。

class SimStatus:
  def __init__(self):
      self.status = 'Failed'

def newFunction(simStatus):
  ...
  if 'PASSED' in checkLine:
    simStatus.status = 'Pass'
  makeResultFile.write(simStatus.status + '\n')

simStatus = SimStatus()
newFunction(simStatus)
newFunction(simStatus)

这避免了全局变量引入的所有设计和句法问题。可以使用这个功能同时跟踪多个状态,对测试脚本也有帮助。