Python交互式编程导论----事件驱动编程,,传统的编程是如下线性


传统的编程是如下线性模式的:

开始--->代码块A--->代码块B--->代码块C--->代码块D--->......--->结束

每一个代码块里是完成各种各样事情的代码,但编程者知道代码块A,B,C,D...的执行顺序,唯一能够改变这个流程的是数据。输入不同的数据,根据条件语句判断,流程或许就改为A--->C--->E...--->结束。每一次程序运行顺序或许都不同,但它的控制流程是由输入数据和你编写的程序决定的。如果你知道这个程序当前的运行状态(包括输入数据和程序本身),那你就知道接下来甚至一直到结束它的运行流程。

对于事件驱动型程序模型,它的流程大致如下:

开始--->初始化--->等待

与上面传统编程模式不同,事件驱动程序在启动之后,就在那等待,等待什么呢?等待被事件触发。传统编程下也有“等待”的时候,比如在代码块D中,你定义了一个input(),需要用户输入数据。但这与下面的等待不同,传统编程的“等待”,比如input(),你作为程序编写者是知道或者强制用户输入某个东西的,或许是数字,或许是文件名称,如果用户输入错误,你还需要提醒他,并请他重新输入。事件驱动程序的等待则是完全不知道,也不强制用户输入或者干什么。只要某一事件发生,那程序就会做出相应的“反应”。这些事件包括:输入信息、鼠标、敲击键盘上某个键还有系统内部定时器触发。

Python中利用simplegui模块实现程序交互,结构如下:

bubuko.com,布布扣

以下是一个简单的交互编程程序:

 1 # Import the module 2 import simplegui 3  4 # Define global variables (program state) 5 counter = 0 6  7 # Define "helper" functions 8 def increment(): 9     global counter10     counter = counter + 111 12 # Define event handler functions13 def tick():14     increment()15     print counter16 17 # Create a frame18 frame = simplegui.create_frame("Test",100,100)19 20 # Register event handlers21 timer = simplegui.create_timer(1000,tick)22 frame.add_button("Click me!",tick)23 24 # Start frame and timers25 frame.start()26 timer.start()

  

Python交互式编程导论----事件驱动编程

评论关闭