3
저는 파이썬에 익숙하지 않습니다. 저는 파이썬 3.5를 우분투에서 사용하고 있습니다. 나는이 질문에 대한 연구를했고 나는 많은 답을 발견했다. 내가하고있는 일은 모두가해야 할 말처럼 보이지만 여전히 오류가 발생하고 있습니다.파이썬 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을 만들려고합니다. 난 그냥 글로벌 bool을 만들어야합니다. 나는 내가 뭘 잘못하고 있는지 이해하지 못한다. 누군가 나에게 약간의 명확성을 주어도 괜찮다면, 고맙겠습니다. 감사합니다
명확히하기 위해 buy_in 메서드의 if 문에서 NameError가 발생했습니다.
클래스 변수로 사용하려면 메소드 내부에서'started' 앞에'self.'를 추가하십시오. – NendoTaka
전역 변수는 대개 클래스 외부에서 선언됩니다. 'started'는 클래스 변수로 설정됩니다. – NendoTaka
글쎄,이 경우, 나는 클래스 변수를 사용하는 것이 좋다. 나는 변수에 대한 호출을'self.started'로 바꾸었고 여전히 NameError를 수신했습니다. 이름 자체가 정의되지 않았다고 말합니다. – John