测试变量抛出错误

时间:2017-12-01 01:36:58

标签: python variables

我正在研究一个实验室测试软件 - 我处于骨干阶段,而我只是想测试紧急停止是否会在它太远之前识别出故障。

以下是代码:

import sys

def main(argv):
    currentTempAverage = 0;
    testingPlaced = False
    typeOfTesting = False
    issue="False"
    class labTesting(object):

def __init__(self,currentCondition,emergencyStop=0):
    self.output = labLog()
Conditions = []
    self.status = "OPEN"
    self.beginningCondition = currentCondition
    self.EndingCondition = ""
    self.output.log("Testing opened")

if float(currentCondition) > float(self.beginningCondition*1.003):
    issue="True"

if (issue=="True") and float(currentCondition) < float(beginningCondition*1.002):
        self.output.log("YIKES!")
        self.status="CLOSED"

    if (emergencyStop):
        self.emergencyStop = currentCondition - emergencyStop
    self.output.log("stop loss") 

def close(self,currentCondition):
    if currentCondition > (self.beginningCondition * 1.012717049):
        self.status = "CLOSED"
        self.EndingCondition = currentCondition

def tick(self, currentCondition):




def showTesting(self):
    testingStatus = "Entry Condition: "+str(self.beginningCondition)

    self.output.log(testingStatus)

基本上,它是检查级别,如果级别达到某一点 - issue = true,因为它可能会成为一个问题。

如果等级变低,则执行紧急停止。根据我的方式,它会引发错误。

Traceback (most recent call last):
  File "/home/DDesm/Desktop/w/labtest/testing.py", line 18, in tick
    if (issue=="True") and float(currentPrice) < float(entryPrice*1.002):

     UnboundLocalError: local variable 'issue' referenced before  assignment

谢谢!

2 个答案:

答案 0 :(得分:0)

你在main内有什么,你可能只想在程序的顶部运行。即使您运行main,这些变量也只会在本地实例化。因此,issue只能被实例化(以及在

处设置为“True”)
if float(currentCondition) > float(self.beginningCondition*1.003):
    issue="True"

顺便说一句,Python确实有布尔值。您可以issue = True,然后if语句可以简化为if issue ...

答案 1 :(得分:0)

错误说明了这一点,您在分配之前引用了issue细分:

然而,在main您定义的问题中,比较发生在类的__init__方法中。在__init__方法的范围内,未定义问题。您可以将issue传递给__init__方法,如下所示:

def __init__(self,currentCondition,issue,emergencyStop=0):