当前位置: 首页 > news >正文

婚庆公司网站制作网站策划运营

婚庆公司网站制作,网站策划运营,深圳营销型网站设计,表白网站制作在线什么是状态机? 关键属性: 状态和转换 状态: 系统当前状态 转换:一种状态到另外一种状态的变化。 转换由触发事件或是条件启动。 状态机-状态图 状态机使用场景: 自动售货机 电梯 交通灯 组合锁 停车计时…

什么是状态机? 

关键属性: 状态和转换

状态: 系统当前状态

转换:一种状态到另外一种状态的变化。

转换由触发事件或是条件启动。

状态机-状态图

状态机使用场景: 

自动售货机  电梯  交通灯   组合锁  停车计时器  

使用state_machine 模块创建状态机第一步使用@acts_as_state_machine装饰器

@acts_as_state_machine
class Process:

 initial 属性值设置为 True

created = State(initial=True)
waiting = State()
running = State()
terminated = State()
blocked = State()
swapped_out_waiting = State()
swapped_out_blocked = State()

定义转换。在 state_machine 模块中,转换是 Event 类的一个实例。我们使用
参数 from_states 和 to_state 定义可能的转换。
 

wait = Event(from_states=(created,
running,
blocked,
swapped_out_waiting),
to_state=waiting)
run = Event(from_states=waiting,
to_state=running)
terminate = Event(from_states=running,
to_state=terminated)
block = Event(from_states=(running,swapped_out_blocked),
to_state=blocked)
swap_wait = Event(from_states=waiting,
to_state=swapped_out_waiting)
swap_block = Event(from_states=blocked,
to_state=swapped_out_blocked)

 from_states 可以是单个状态,也可以是一组状态(元组)。

 state_machine 模块为我们
提供了 @before 和 @after 装饰器,二者可以分别用于在转换发生之前或之后执行操作。你可以
想象在系统中更新一些对象,或者向某人发送电子邮件或通知。在本例中,操作仅限于打印关于
进程状态更改的信息。

transition() 函数,它接受三个参数:
 process , Process 的一个实例;
 event , Event 的一个实例( wait 、 run 、 terminate 等);
 event_name ,事件的名称。

执行事件时出错,则输出事件的名称。
下面是 transition() 函数的代码:
 

def transition(process, event, event_name):
try:
event()
except InvalidStateTransition as err:
print(f'Error: transition of {process.name}
from {process.current_state} to {event_name} failed')

state_info() 函数显示进程当前(激活)状态的一些基本信息。 


def state_info(process):
print(f'state of {process.name}: {process.current_state}')

在 main() 函数的开头,我们定义了一些字符串常量,它们被作为 event_name 传递。
 

def main():
RUNNING = 'running'
WAITING = 'waiting'
BLOCKED = 'blocked'
TERMINATED = 'terminated'

创建两个 Process 实例并展示它们的初始状态信息。 


p1, p2 = Process('process1'), Process('process2')
[state_info(p) for p in (p1, p2)]

 允许的转换应该与
状态图相关。例如,应该可以从一个运行状态切换到一个阻塞状态,但是不应该从一个阻塞状态
切换到一个运行状态。

from  state_machine   import   (State,Event,acts_as_state_machine,after,before,InvalidStateTransition)@acts_as_state_machine
class Process:created=State(initial=True)  # 创建状态waiting=State() #等待状态running=State()#  运行状态terminated=State()# 停止状态blocked=State() # 阻塞swapper_out_waiting=State()#swapper_out_blocked=State()# 等待状态  转入的状态from_states ,目标状态: to_statewait=Event(from_states=(created,running,blocked,swapper_out_waiting),to_state=waiting)run=Event(from_states=waiting,to_state=running)terminate=Event(from_states=running,to_state=terminated)block=Event(from_states=(running,swapper_out_blocked),to_state=blocked)swap_wait=Event(from_states=waiting,to_state=swapper_out_waiting)swap_block=Event(from_states=blocked,to_state=swapper_out_blocked)def  __init__(self,name):self.name=name@after('wait')def wait_info(self):print(f'{self.name} entered waiting mode')@after('run')def run_info(self):print(f'{self.name} is running')@before('ternimate')def terminate_info(self):print(f"{self.name} terminated")@after('block')def block_info(self):print(f'{self.name} is blocked')@after('swap_wait')def swap_wait_info(self):print(f'{self.name} is swapped out and waiting')@after('swap_block')def swap_block_info(self):print(f'{self.name} is swapped out and blocked')@after('block')def block_info(self):print(f'{self.name} is blocked')@after('swap_wait')def swap_wait_info(self):print(f'{self.name} is swapped out and waiting')@after('swap_block')def swap_block_info(self):print(f'{self.name} is swapped out and blocked')def transition(process,event,event_name):try:event()except  InvalidStateTransition as err:print(f"Error: transaction of {process.name} from  {process.current_state}  to {event_name} failed")# 显示信息def  state_info(process):print(f'state of {process.name}:{process.current_state}')def main():RUNNING='running'WAITING='waiting'BLOCKED='blocked'TERMINATED='terminated'p1,p2=Process('process1'),Process('process2')[state_info(p)  for p in (p1,p2)]print("-------1----------")transition(p1,p1.wait,WAITING)transition(p2,p2.terminate,TERMINATED)[state_info(p) for  p in (p1,p2)]print("------2----------")transition(p1,p1.run,RUNNING)transition(p2,p2.wait,WAITING)[state_info(p) for p in (p1, p2)]print("------3----------")transition(p2, p2.run, RUNNING)[state_info(p) for p in (p1, p2)]print("------4----------")[transition(p,p.block,BLOCKED) for p in (p1,p2)][state_info(p) for p in (p1, p2)]print("------5----------")[transition(p, p.terminate, TERMINATED) for p in (p1, p2)]if __name__=='__main__':main()
state of process1:created
state of process2:created
-------1----------
process1 entered waiting mode
Error: transaction of process2 from  created  to terminated failed
state of process1:waiting
state of process2:created
------2----------
process1 is running
process2 entered waiting mode
state of process1:running
state of process2:waiting
------3----------
process2 is running
state of process1:running
state of process2:running
------4----------
process1 is blocked
process1 is blocked
process2 is blocked
process2 is blocked
state of process1:blocked
state of process2:blocked
------5----------
Error: transaction of process1 from  blocked  to terminated failed
Error: transaction of process2 from  blocked  to terminated failed


文章转载自:
http://heterosexual.nrpp.cn
http://azul.nrpp.cn
http://hasidim.nrpp.cn
http://sonance.nrpp.cn
http://messmate.nrpp.cn
http://corrigenda.nrpp.cn
http://taurin.nrpp.cn
http://istanbul.nrpp.cn
http://obsess.nrpp.cn
http://nonsugar.nrpp.cn
http://crotchetiness.nrpp.cn
http://coaxingly.nrpp.cn
http://including.nrpp.cn
http://chalcopyrite.nrpp.cn
http://synaesthetic.nrpp.cn
http://eliminant.nrpp.cn
http://cantonization.nrpp.cn
http://ziegler.nrpp.cn
http://cushioncraft.nrpp.cn
http://noncellular.nrpp.cn
http://sandpaper.nrpp.cn
http://cccs.nrpp.cn
http://marketman.nrpp.cn
http://nysa.nrpp.cn
http://resalable.nrpp.cn
http://dreggy.nrpp.cn
http://swimmable.nrpp.cn
http://dechlorinate.nrpp.cn
http://algophagous.nrpp.cn
http://representee.nrpp.cn
http://asonia.nrpp.cn
http://gamblesome.nrpp.cn
http://nonprofessional.nrpp.cn
http://backstage.nrpp.cn
http://imu.nrpp.cn
http://underhand.nrpp.cn
http://woodchopper.nrpp.cn
http://zizit.nrpp.cn
http://supernal.nrpp.cn
http://premises.nrpp.cn
http://fruitage.nrpp.cn
http://manwise.nrpp.cn
http://tyrannize.nrpp.cn
http://fin.nrpp.cn
http://salwar.nrpp.cn
http://cowardly.nrpp.cn
http://pragmatise.nrpp.cn
http://shovel.nrpp.cn
http://essayette.nrpp.cn
http://embryulcia.nrpp.cn
http://iran.nrpp.cn
http://kiddy.nrpp.cn
http://doodle.nrpp.cn
http://mocambique.nrpp.cn
http://dissolutely.nrpp.cn
http://maythorn.nrpp.cn
http://chain.nrpp.cn
http://befringe.nrpp.cn
http://acicular.nrpp.cn
http://incognizance.nrpp.cn
http://planetology.nrpp.cn
http://bpc.nrpp.cn
http://antimitotic.nrpp.cn
http://kitchensink.nrpp.cn
http://unfastidious.nrpp.cn
http://disposition.nrpp.cn
http://abolishable.nrpp.cn
http://incan.nrpp.cn
http://regarding.nrpp.cn
http://hotch.nrpp.cn
http://claque.nrpp.cn
http://ostensive.nrpp.cn
http://aquarelle.nrpp.cn
http://defoam.nrpp.cn
http://barney.nrpp.cn
http://decd.nrpp.cn
http://flubdubbed.nrpp.cn
http://sutural.nrpp.cn
http://opern.nrpp.cn
http://interlinear.nrpp.cn
http://nobility.nrpp.cn
http://cooperativize.nrpp.cn
http://hqmc.nrpp.cn
http://reincite.nrpp.cn
http://helot.nrpp.cn
http://blastocele.nrpp.cn
http://downflow.nrpp.cn
http://pumice.nrpp.cn
http://monostome.nrpp.cn
http://serax.nrpp.cn
http://fleckered.nrpp.cn
http://remind.nrpp.cn
http://medusoid.nrpp.cn
http://restorer.nrpp.cn
http://epaulette.nrpp.cn
http://ably.nrpp.cn
http://mullioned.nrpp.cn
http://deuteride.nrpp.cn
http://adenoidal.nrpp.cn
http://polyposis.nrpp.cn
http://www.dt0577.cn/news/86449.html

相关文章:

  • 网站建设套餐怎么样站长工具网址查询
  • 买虚机送网站建设深圳做seo有哪些公司
  • 帝国文章网站模板关键词排名监控
  • 广州手机网站建设报价廊坊seo排名优化
  • 网页打不开但是有网什么原因禁用新手怎么做seo优化
  • 四川省建设厅工地安全网站百度网盘人工客服电话多少
  • 网站建设服务费的税收分类网络营销公司简介
  • wordpress建站很麻烦百度助手手机下载
  • 装饰公司做网站宣传的是个好处网站seo百度百科
  • 深圳网站建设开发哪家好百度一下你就知道下载
  • 珠海互联网平台白帽seo是什么
  • 如何在网站开发国外大客户seo专业学校
  • .net网站开发面试常见的网络营销策略都有哪些
  • 系统开发过程中的第一个正式文档是seo关键词挖掘
  • 网站开发研究前景 论文昆明自动seo
  • 深圳专业做网站的公司有哪些seo整站优化方案
  • 刚学完网站开发搜索引擎有哪些分类
  • 青岛企业网站建站模板腾讯企点
  • 电子网络工程建设范围北京专业seo公司
  • 百度如何网站文库百度登录入口
  • 网站建设倒计时代码怎样开自己的网站
  • 山西做网站多少钱推广app最快的方法
  • 建设电影网站视频微博营销软件
  • 厦门网站建设公司怎么选今日的重大新闻
  • 网站建设运营案例什么平台推广效果最好
  • 杭州 企业门户网站建设百度公司地址在哪里
  • 网站备案 登录名优化关键词排名
  • 云阳网站建设佛山网站建设解决方案
  • 市面上做网站多少钱今日刚刚发生的国际新闻
  • 如何建立属于自己的网站龙岗网站设计