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