标签:style blog http color io ar 文件 数据 sp
传统的编程是如下线性模式的:
开始--->代码块A--->代码块B--->代码块C--->代码块D--->......--->结束
每一个代码块里是完成各种各样事情的代码,但编程者知道代码块A,B,C,D...的执行顺序,唯一能够改变这个流程的是数据。输入不同的数据,根据条件语句判断,流程或许就改为A--->C--->E...--->结束。每一次程序运行顺序或许都不同,但它的控制流程是由输入数据和你编写的程序决定的。如果你知道这个程序当前的运行状态(包括输入数据和程序本身),那你就知道接下来甚至一直到结束它的运行流程。
对于事件驱动型程序模型,它的流程大致如下:
开始--->初始化--->等待
与上面传统编程模式不同,事件驱动程序在启动之后,就在那等待,等待什么呢?等待被事件触发。传统编程下也有“等待”的时候,比如在代码块D中,你定义了一个input(),需要用户输入数据。但这与下面的等待不同,传统编程的“等待”,比如input(),你作为程序编写者是知道或者强制用户输入某个东西的,或许是数字,或许是文件名称,如果用户输入错误,你还需要提醒他,并请他重新输入。事件驱动程序的等待则是完全不知道,也不强制用户输入或者干什么。只要某一事件发生,那程序就会做出相应的“反应”。这些事件包括:输入信息、鼠标、敲击键盘上某个键还有系统内部定时器触发。
Python中利用simplegui模块实现程序交互,结构如下:
以下是一个简单的交互编程程序:
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 counter 10 counter = counter + 1 11 12 # Define event handler functions 13 def tick(): 14 increment() 15 print counter 16 17 # Create a frame 18 frame = simplegui.create_frame("Test",100,100) 19 20 # Register event handlers 21 timer = simplegui.create_timer(1000,tick) 22 frame.add_button("Click me!",tick) 23 24 # Start frame and timers 25 frame.start() 26 timer.start()
标签:style blog http color io ar 文件 数据 sp
原文地址:http://www.cnblogs.com/slyz/p/4009133.html