Python 测试可变投掷误差
我正在开发一个实验室测试软件——我正处于主干阶段,我只是想测试紧急停止是否能在故障发生之前识别出故障 代码如下:Python 测试可变投掷误差,python,variables,Python,Variables,我正在开发一个实验室测试软件——我正处于主干阶段,我只是想测试紧急停止是否能在故障发生之前识别出故障 代码如下: import sys def main(argv): currentTempAverage = 0; testingPlaced = False typeOfTesting = False issue="False" class labTesting(object): def __init__(self,currentCondition,e
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)
导入系统
def总管(argv):
currentTempAverage=0;
testingPlaced=False
typeOfTesting=False
issue=“False”
类labTesting(对象):
def u u init u uuu(自身、当前条件、紧急状态)op=0):
self.output=labLog()
条件=[]
self.status=“打开”
self.beginingcondition=当前条件
self.EndingCondition=“”
self.output.log(“测试已打开”)
如果浮动(当前条件)>浮动(自开始条件*1.003):
issue=“True”
如果(issue==“True”)和浮点(currentCondition)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
回溯(最近一次呼叫最后一次):
文件“/home/DDesm/Desktop/w/labtest/testing.py”,第18行,勾号
如果(issue==“True”)和浮动(currentPrice)
谢谢 您在
main
中拥有的内容可能只是希望在程序顶部运行。即使运行了main
,这些变量也只能在本地实例化。因此,问题
只能实例化(以及在以下位置设置为“True”):
另外,Python确实有布尔值。您可以只执行
issue=True
,然后if语句可以简化为if-issue…
错误说明了一切,您在分配它之前引用了issue
。
细分:
但是,在定义了问题的main
中,比较发生在类的\uuuuuu init\uuuuu
方法中。在\uuuuu init\uuuuu
方法的范围内,没有定义问题。您可以通过将问题
传递到\uuuuuuuuuu init\ucode>方法来解决这个问题,如下所示:
def __init__(self,currentCondition,issue,emergencyStop=0):
在main()中有一行classlabtesting(object):
缩进关闭。这里的问题是,如果不满足第一个条件,变量issue
尚未定义。当在main
中写入issue=false
时,该变量仅存在于函数main
的范围内,因此在该函数之外无法访问,直到它被在其他地方定义。您的代码缩进不良且不完整。缩进已关闭,因为我使用了文本编辑器。很抱歉,我不完全了解您来自何处。您能详细说明一下吗?问题在调用它的\uuu init\uuuuuu
方法中不存在。将问题传递到\uuuu init\uuuuuu
方法中,然后它就会出现存在于那里(它将被分配),您可以引用它。
def __init__(self,currentCondition,issue,emergencyStop=0):