3
我是python新手,我在Ubuntu上使用python 3.5。我对这个问题做了一些研究,并且发现了很多答案。我在做什么看起来像每个人都在说我应该这样做,但我仍然收到错误。Python 3.5类变量
import csv
import sys
Class State():
started = False
def waiting(self):
self.started
if self.started == False:
self.started = True
return
def buy_in(self, col):
if self.started == False:
return
else:
print(col)
def read_file(file):
csv_list = csv.reader(file)
header = True
for row in csv_list:
if header:
header = False
continue
col = float(row[5])
if col < 0 :
State.waiting()
if col >= 0:
State.buy_in(col)
file.close()
def main(filename):
file = open(filename)
read_file(file)
def __name__ == '__main__':
main(sys.argv[1])
我只是想在Python中创建一个伪FSM,通过使用一个类和方法。我只需要创建一个全局布尔。我真的不明白我做错了什么。如果有人不介意给我一些澄清,我会很感激。谢谢
为了说明问题,我在buy_in方法的if语句中得到NameError。
如果您想将其用作类变量,请在方法内的'started'前添加'self.'。 – NendoTaka
全局变量通常在类的外部声明。 'started'被设置为一个类变量。 – NendoTaka
那么,在这个例子中,我对类变量很好。我将该变量的调用改为'self.started',并且我仍然收到一个NameError。名字自我没有定义。 – John