我正在开发一个实验室测试软件——我正处于主干阶段,我只是想测试紧急停止是否能在故障发生之前识别出故障
代码如下:
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
谢谢
你所拥有的
main
你可能只想在程序的顶端运行。即使您确实运行了main
,这些变量也只能在本地实例化。因此,issue
只能实例化(以及在以下位置设置为“True”):另外,Python确实有布尔值。您可以只执行
issue = True
,然后将if语句简化为if issue ...
错误说明了一切,您在分配它之前引用了
issue
。 细分:然而,在您定义的问题
main
中,比较是在类的__init__
方法中进行的。在__init__
方法的范围内,未定义问题。您可以通过将issue
传递给__init__
方法来解决此问题,如下所示:相关问题 更多 >
编程相关推荐