Я новичок в python, и я использую python 3.5 на Ubuntu. Я сделал некоторые исследования по этому вопросу, и я нашел много ответов. То, что я делаю, похоже на то, что все говорят, что я должен делать, но я все еще получаю ошибки.Переменные класса 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])
Я просто пытаюсь создать псевдо-FSM в python, используя класс и методы. Мне просто нужно создать глобальный bool. Я не совсем понимаю, что я делаю неправильно. Если кто-то не возражает, давая мне некоторую ясность, я был бы признателен. Спасибо
Чтобы уточнить, я получаю NameError в выражении if в методе buy_in.
Если вы хотите использовать его как переменную класса, добавьте 'self.' перед' запуском' внутри ваших методов. – NendoTaka
Глобальная переменная обычно объявляется вне класса. 'start' устанавливается как переменная класса. – NendoTaka
Ну, в этом случае, я в порядке с переменной класса. Я изменил вызов на переменную на 'self.started', и я все равно получил NameError. Говорит само имя не определено. – John