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 相关文章推荐
Python3中的列表,元组,字典,字符串相关知识小结
Nov 10 Python
Python 用Redis简单实现分布式爬虫的方法
Nov 23 Python
Python获取昨天、今天、明天开始、结束时间戳的方法
Jun 01 Python
利用django-suit模板添加自定义的菜单、页面及设置访问权限
Jul 13 Python
pycharm安装和首次使用教程
Aug 27 Python
Python Unittest根据不同测试环境跳过用例的方法
Dec 16 Python
解决pyinstaller打包pyqt5的问题
Jan 08 Python
PyCharm导入python项目并配置虚拟环境的教程详解
Oct 13 Python
python安装dlib库报错问题及解决方法
Mar 16 Python
Python实现手绘图效果实例分享
Jul 22 Python
python MD5加密的示例
Oct 19 Python
Python读取文件夹下的所有文件实例代码
Apr 02 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
利用php下载xls文件(自己动手写的)
2014/04/18 PHP
WordPress的文章自动添加关键词及关键词的SEO优化
2016/03/01 PHP
PHP表单数据写入MySQL数据库的代码
2016/05/31 PHP
php正则判断是否为合法身份证号的方法
2017/03/16 PHP
jQuery中:text选择器用法实例
2015/01/03 Javascript
jQuery中prevAll()方法用法实例
2015/01/08 Javascript
简单实现JS对dom操作封装
2015/12/02 Javascript
jQuery设置Cookie及删除Cookie实例分析
2016/04/15 Javascript
js实现带农历和八字等信息的日历特效
2016/05/16 Javascript
VUEJS实战之构建基础并渲染出列表(1)
2016/06/13 Javascript
js实现简单的碰壁反弹效果
2016/08/30 Javascript
AngularJS辅助库browserTrigger用法示例
2016/11/03 Javascript
AngularJS使用ng-app自动加载bootstrap框架问题分析
2017/01/04 Javascript
浅谈javascript的url参数parse和build函数
2017/03/04 Javascript
微信小程序 跳转传参数与传对象详解及实例代码
2017/03/14 Javascript
vue中动态绑定表单元素的属性方法
2018/02/23 Javascript
详解Puppeteer 入门教程
2018/05/09 Javascript
微信小程序文章详情页面实现代码
2018/09/10 Javascript
微信小程序new Date()方法失效问题解决方法
2019/07/29 Javascript
jQuery操作元素追加内容示例
2020/01/10 jQuery
Django框架实现分页显示内容的方法详解
2019/05/10 Python
Python描述符descriptor使用原理解析
2020/03/21 Python
python numpy实现rolling滚动案例
2020/06/08 Python
python和go语言的区别是什么
2020/07/20 Python
Python连接Impala实现步骤解析
2020/08/04 Python
Python实现播放和录制声音的功能
2020/08/12 Python
Python list和str互转的实现示例
2020/11/16 Python
利用CSS3的border-radius绘制太极及爱心图案示例
2016/05/17 HTML / CSS
【HTML5】3D模型--百行代码实现旋转立体魔方实例
2016/12/16 HTML / CSS
HTML5公共页面提取作为公用代码的方法
2020/06/30 HTML / CSS
思想政治自我鉴定
2013/10/06 职场文书
《月迹》教学反思
2014/02/19 职场文书
医院病假条怎么写
2015/08/17 职场文书
HTML速写之Emmet语法规则的实现
2021/04/07 HTML / CSS
详解CocosCreator消息分发机制
2021/04/16 Javascript
解决numpy数组互换两行及赋值的问题
2021/04/17 Python