Python:有限状态机实例(一)

本文深入探讨Python中如何实现有限状态机,通过实例解析其基本概念和应用场景,帮助读者理解这一重要的编程抽象思维工具。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#   _*_ coding:utf-8 _*_
from random import randint
from time import sleep

__author__ = 'admin'

'''
    23种设计模式之状态模式:有限状态机
    下面介绍了灯的三种状态:
    1.开着
    2.灭着
    3.坏了
    其中"坏了"的状态下,若是修好了,必然进入灭着的状态
'''

#   Light类
class Light(object):
    def __init__(self, name):
        self.name = name
        self.state = ""
        self.fsm = None

    #   开灯方法
    def lightOn(self):
        #   打印语句代替行为
        print("灯亮着[%s]" % self.name)

    #   关灯方法
    def lightOff(self):
        print("灯灭着[%s]" % self.name)

    #   坏灯方法
    def lightBroken(self):
        print("灯坏了[%s]" % self.name)

    #   绑定状态机
    def bind(self, state, fsm):
        self.state = state
        self.fsm = fsm


# 定义状态
class State(object):
    def exec(self, obj):
        pass

    def exit(self, obj):
        pass


# 定义开灯状态,继承State(这里就是写进入该状态时该干那些事情,退出该状态时该干那些事情)
class OnState(State):
    #   进入还状态无非就是,将灯做打开操作
    def exec(self, obj):
        obj.lightOn()

    #   退出该状态,无非就是,将灯做关闭操作
    def exi
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值