2016-09-24 6 views
0

프로그램에 멈추었습니다. 코드의 나머지 부분에만 의존하기 때문에 코드의 일부만 오류로 게시 할 수 없습니다. 그래서 아래 링크에 전체 코드를 게시했습니다. 그냥 아니오처럼 보아라. 113 및 114. fs = fsa.final_state을 사용하면 오류 : AttributeError: 'int' object has no attribute 'final_state'이 표시됩니다. 그러나 어떤 오류없이 print("TEST", fsa.final_state)을 사용할 수 있으며 결과도 정확합니다. 당신이 이해하지 못하는 코드의 어떤 부분을 물어보십시오. 감사.Python : AttributeError : 'int'객체에 'final_stat'속성이 없습니다.

코드 : https://repl.it/Dfey/7

답변

0

난 당신의 코드를 보았습니다. 여기이 선에 :

print("'%s'\t%s" % (input, NDRecognize(input, days))) 

귀하는 NDRecognize에 매개 변수를 days를 전달합니다. 그러나 내가 print(type(days)) 할 때 나는 int를 얻는다. 그러나 days 매개 변수는 loop()으로 전달 된 다음 accept_state()으로 fsa으로 전달됩니다. 오류가 발생하는 속성 중 하나에 액세스하려고 시도해야합니다.

즉, int을 fsa로 전달하고 실제 FSA 개체는 전달하지 않습니다. 생성 한 다음이를 매개 변수로 전달해야합니다.

편집 : 라인 (260)의 주위에

당신이 days = 31 쓰기에서 일 선언을 무시 그것을가 months 아니라 작동 왜 당신은 그러나 months를 재정의하지 않는 라인 (72)에 프로그램에서 이전 days

+0

답변 해 주셔서 감사합니다. 당신 말이 맞아요. 오브젝트가 아닌 정수가 전달됩니다. 그 일이 어떻게 일어 났는지 알기 위해 어떤 생각을 가지고 있습니까? 몇 달이 지나면 모든 것이 정상적으로 보이지만 31 일이 지나면 정수가됩니다. 라인 번호를보세요. 113 및 114 https://repl.it/Dfey/25 –

+0

그래, 답을 수정했습니다. 위를보십시오 – user3543300

+0

고마워, 너 천재 야! –

관련 문제