|
277 | 277 | " # 定义状态转换函数\n", |
278 | 278 | " # 基本的语法很好懂,trigger 参数是输入函数名,source 和 dest 分别是当前和转换后的状态\n", |
279 | 279 | " # before 参数表示进行这个状态转换之前要调用的函数,如果该函数运行时出现异常,状态转换会中止\n", |
280 | | - " self.machine.add_transition(trigger='pay', source='created', dest='paid', before='payment_service')\n", |
| 280 | + " self.machine.add_transition(trigger='t_pay', source='created', dest='paid', before='payment_service')\n", |
281 | 281 | " # after 参数表示当这个状态转换完成后调用的函数,我们用这个函数来通知用户已经发货在途了\n", |
282 | | - " self.machine.add_transition(trigger='deliver', source='paid', dest='delivering', after='notify_delivering')\n", |
283 | | - " self.machine.add_transition(trigger='receive', source='delivering', dest='received')\n", |
284 | | - " self.machine.add_transition(trigger='confirm', source='received', dest='done')\n", |
| 282 | + " self.machine.add_transition(trigger='t_deliver', source='paid', dest='delivering', after='notify_delivering')\n", |
| 283 | + " self.machine.add_transition(trigger='t_receive', source='delivering', dest='received')\n", |
| 284 | + " self.machine.add_transition(trigger='t_confirm', source='received', dest='done')\n", |
285 | 285 | " # 可以一次定义多个状态向同一个状态的装换\n", |
286 | | - " self.machine.add_transition(trigger='cancel', source=['created', 'paid'], dest='cancelling')\n", |
287 | | - " self.machine.add_transition(trigger='return', source=['delivering', 'received'], dest='returning')\n", |
288 | | - " self.machine.add_transition(trigger='close', source=['cancelling', 'returning'], dest='closed')\n", |
| 286 | + " self.machine.add_transition(trigger='t_cancel', source=['created', 'paid'], dest='cancelling')\n", |
| 287 | + " self.machine.add_transition(trigger='t_return', source=['delivering', 'received'], dest='returning')\n", |
| 288 | + " self.machine.add_transition(trigger='t_close', source=['cancelling', 'returning'], dest='closed')\n", |
289 | 289 | " \n", |
290 | 290 | " def payment_service(self):\n", |
291 | 291 | " print('支付服务申请中……')\n", |
|
301 | 301 | "order1 = Order(1)\n", |
302 | 302 | "order1.state # => 'created'\n", |
303 | 303 | "# order1.receive() # => 如果运行这一句会抛出 MachineError 异常,因为当前状态与此 trigger(输入)不匹配,转换不被允许\n", |
304 | | - "order1.pay() # => 会先调用 payment_service(),成功的话返回 True\n", |
| 304 | + "order1.t_pay() # => 会先调用 payment_service(),成功的话返回 True\n", |
305 | 305 | "order1.state # => 'paid'\n", |
306 | | - "order1.deliver() # => 成功后调用 notify_delivering() 通知用户\n", |
307 | | - "order1.receive()\n", |
308 | | - "order1.confirm()\n", |
| 306 | + "order1.t_deliver() # => 成功后调用 notify_delivering() 通知用户\n", |
| 307 | + "order1.t_receive()\n", |
| 308 | + "order1.t_confirm()\n", |
309 | 309 | "order1.state # => 'done'" |
310 | 310 | ] |
311 | 311 | }, |
|
0 commit comments