未定义名称“simStatus”

2024-05-29 05:13:32 发布

您现在位置:Python中文网/ 问答频道 /正文

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”。我使用的是python3。我不想直接使用函数makeResultFile.write(),因为我的代码中有一些其他依赖循环。请建议解决此错误的方法。谢谢你


Tags: 代码researchreadlineifdef错误pass
1条回答
网友
1楼 · 发布于 2024-05-29 05:13:32

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

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)

这避免了globals带来的所有设计和语法问题。它可以使用这个函数一次跟踪多个状态,并且对测试脚本也很有帮助

相关问题 更多 >

    热门问题