Python中实现结构相似的函数调用方法


Posted in Python onMarch 10, 2015

python的dict用起来很方便,可以自定义key值,并通过下标访问,示例如下:

>>> d = {'key1':'value1',

... 'key2':'value2',

... 'key3':'value3'}

>>> print d['key2']

value2

>>>

lambda表达式也是很实用的东东,示例如下:
>>> f = lambda x : x**2

>>> print f(2)

4

>>>

两者结合可以实现结构相似的函数调用,使用起来很方便,示例如下:

示例一:不带参数 

#! /usr/bin/python

 

msgCtrl = "1 : pause\n2 : stop\n3 : restart\nother to quit\n"

 

ctrlMap = {

'1':    lambda : doPause(),

'2':    lambda : doStop(),

'3':    lambda : doRestart()}

 

def doPause():

        print 'do pause'

 

def doStop():

        print 'do stop'

 

def doRestart():

        print 'do restart'

 

if __name__ == '__main__':

        while True:

                print msgCtrl

                cmdCtrl = raw_input('Input : ')

                if not ctrlMap.has_key(cmdCtrl):break

                ctrlMap[cmdCtrl]()

示例二:带参数

#! /usr/bin/python

 

msgCtrl = "1 : +\n2 : -\n3 : *\nother to quit\n"

 

ctrlMap = {

'1':    lambda x,y : x+y,

'2':    lambda x,y : x-y,

'3':    lambda x,y : x*y}

 

 

if __name__ == '__main__':

        while True:

                print msgCtrl

                cmdCtrl = raw_input('Input : ')

                if not ctrlMap.has_key(cmdCtrl):break

                print ctrlMap[cmdCtrl](10,2),"\n"
Python 相关文章推荐
python实现批量改文件名称的方法
May 25 Python
python模拟Django框架实例
May 17 Python
Python实现连接MySql数据库及增删改查操作详解
Apr 16 Python
树莓派使用USB摄像头和motion实现监控
Jun 22 Python
使用python将多个excel文件合并到同一个文件的方法
Jul 09 Python
Python交互式图形编程的实现
Jul 25 Python
python深copy和浅copy区别对比解析
Dec 26 Python
python 浮点数四舍五入需要注意的地方
Aug 18 Python
python安装sklearn模块的方法详解
Nov 28 Python
django使用多个数据库的方法实例
Mar 04 Python
python 如何在list中找Topk的数值和索引
May 20 Python
Python实现生活常识解答机器人
Jun 28 Python
Python实现CET查分的方法
Mar 10 #Python
Python实现的批量下载RFC文档
Mar 10 #Python
Python制作CSDN免积分下载器
Mar 10 #Python
Python Tkinter GUI编程入门介绍
Mar 10 #Python
Python格式化css文件的方法
Mar 10 #Python
Python将xml和xsl转换为html的方法
Mar 10 #Python
Python写的Tkinter程序屏幕居中方法
Mar 10 #Python
You might like
joomla jce editor 解决上传中文名文件失败问题
2013/06/09 PHP
php socket客户端及服务器端应用实例
2014/07/04 PHP
不要在cookie中使用特殊字符的原因分析
2010/07/13 Javascript
为radio类型的INPUT添加客户端脚本(附加实现JS来禁用onClick事件思路代码)
2010/11/11 Javascript
jQuery结合Json提交数据到Webservice,并接收从Webservice返回的Json数据
2011/02/18 Javascript
jQuery+CSS 实现随滚动条增减的汽水瓶中的液体效果
2011/09/26 Javascript
JS写的贪吃蛇游戏(个人练习)
2013/07/08 Javascript
获取当前点击按钮的id用this.id实现
2014/03/17 Javascript
$.each与$().each的区别示例介绍
2014/03/20 Javascript
AngularJs学习第五篇从Controller控制器谈谈$scope作用域
2016/06/08 Javascript
Angularjs中的$apply及优化使用详解
2018/07/02 Javascript
使用svg实现动态时钟效果
2018/07/17 Javascript
Vue中的基础过渡动画及实现原理解析
2018/12/04 Javascript
vue组件数据传递、父子组件数据获取,slot,router路由功能示例
2019/03/19 Javascript
JavaScript中的垃圾回收与内存泄漏示例详解
2019/05/02 Javascript
Python实现简单拆分PDF文件的方法
2015/07/30 Python
Python编程实现正则删除命令功能
2017/08/30 Python
Python操作MongoDB数据库的方法示例
2018/01/04 Python
numpy找出array中的最大值,最小值实例
2018/04/03 Python
python 矩阵增加一行或一列的实例
2018/04/04 Python
mac 安装python网络请求包requests方法
2018/06/13 Python
Python自定义一个类实现字典dict功能的方法
2019/01/19 Python
python日志模块logbook使用方法
2019/09/19 Python
WxPython实现无边框界面
2019/11/18 Python
Pandas+Matplotlib 箱式图异常值分析示例
2019/12/09 Python
美国地毯购买网站:Rugs USA
2019/02/23 全球购物
前台文员的岗位职责
2013/11/14 职场文书
2014年公司植树节活动方案
2014/03/04 职场文书
小露珠教学反思
2014/04/30 职场文书
商铺门前三包责任书
2014/07/25 职场文书
2015年初中教师个人工作总结
2015/07/21 职场文书
施工安全责任协议书
2016/03/23 职场文书
创业计划之特色精品店
2019/08/12 职场文书
nginx优化的六点方法
2021/03/31 Servers
python中的class_static的@classmethod的巧妙用法
2021/06/22 Python
浅谈sql_@SelectProvider及使用注意说明
2021/08/04 Java/Android