1

我第一次使用 pytransitions 并遇到了这个问题,我正在尝试做一些状态并测试它

from transitions import Machine


class TelegramBot(object):
    states = ['asleep',
              'wait_for_size',
              'size_selected'
              'wait_for_payment',
              'payment_selected',
              'wait_for_confirmation',
              'confirmed']
    transitions = [
        {'trigger': 'wait_for_size', 'source': 'asleep', 'dest': 'size_selected'},
        {'trigger': 'wait_for_payment', 'source': 'size_selected', 'dest': 'payment_selected'},
        {'trigger': 'wait_for_confirmation', 'source': 'payment_selected', 'dest': 'confirmed'},
        {'trigger': 'asleep', 'source': 'confirmed', 'dest': 'asleep'}
    ]

    def __init__(self, name):
        self.name = name

        self.pizza_orders = 0

        self.machine = Machine(model=self,
                               states=TelegramBot.states,
                               initial='asleep')

        self.machine.add_transition(trigger='wait_for_size',
                                    source='asleep',
                                    dest='size_selected')

        self.machine.add_transition(trigger='wait_for_payment',
                                    source='size_selected',
                                    dest='payment_selected')

        self.machine.add_transition(trigger='wait_for_confirmation',
                                    source='payment_selected',
                                    dest='confirmed')

        self.machine.add_transition(trigger='confirmed',
                                    source='wait_for_confirmation',
                                    dest='asleep')

    def update_orders(self):
        self.pizza_orders += 1


tgBot = TelegramBot('KVINT_TEST')
print(tgBot.state)
tgBot.wait_for_size()
print(tgBot.state)

我正在尝试自己更改状态并收到此错误:ValueError:状态'size_selected'不是注册状态。

我跟进了文档对不起可能是愚蠢的问题

4

0 回答 0