Доброго времени суток!
Осваиваю библиотеку statemachine. Хочу, чтобы после ввода слова-команды мне выдавалось текущее состояние конечного автомата, но в ответ получаю трейсбек с исключением
'TestState' object has no attribute 'model'
. Иду в документацию, читаю методы класса StateMachine и не вижу, чтобы для того, чтобы метод current_state стал доступным, объекту надо назначать атрибут model. Кроме того, в документации есть страница, посвященная Model, и там сообщается, что так называемые Domain Models являются необязательными атрибутами. Наконец, в примерах на заглавной странице документации совершенно спокойно запрашивается current_state без какого-либо определения model.
Подскажите, пожалуйста, чего я здесь не понимаю? Код прилагаю.
from statemachine import StateMachine, State
class TestState(StateMachine):
begin = State(initial=True)
state_1 = State()
state_2 = State()
state_3 = State()
final = State(final=True)
to_state_1 = begin.to(state_1, event="go_right", before="went_right")
to_state_2 = begin.to(state_2)
to_state_3 = begin.to(state_3)
to_final = (
state_1.to(final),
state_2.to(final),
state_3.to(final)
)
def __init__(self):
self.command = ""
def go_right(self, command):
return command == "направо"
def went_right(self):
print("Направо пойдешь — коня потеряешь.")
test_state = TestState()
test_state.command = input()
print(test_state.command)
test_state.current_state_value
Также прилагаю трейсбек:
Traceback (most recent call last):
File "c:\Users\Марина\Documents\Универ\работа дунганский\project\test.py", line 33, in <module>
test_state.current_state_value
File "C:\Users\Марина\lib\site-packages\statemachine\statemachine.py", line 207, in current_state_value
value = getattr(self.model, self.state_field, None)
AttributeError: 'TestState' object has no attribute 'model'