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中MySQL数据迁移到MongoDB脚本的方法
Apr 28 Python
tornado 多进程模式解析
Jan 15 Python
详解如何利用Cython为Python代码加速
Jan 27 Python
使用pandas对矢量化数据进行替换处理的方法
Apr 11 Python
python解决js文件utf-8编码乱码问题(推荐)
May 02 Python
python实现浪漫的烟花秀
Jan 30 Python
使用selenium模拟登录解决滑块验证问题的实现
May 10 Python
基于Django的乐观锁与悲观锁解决订单并发问题详解
Jul 31 Python
python集合的创建、添加及删除操作示例
Oct 08 Python
使用python-Jenkins批量创建及修改jobs操作
May 12 Python
Pyinstaller加密打包应用的示例代码
Jun 11 Python
python中mongodb包操作数据库
Apr 19 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数组函数序列之array_values() 获取数组元素值的函数与方法
2011/10/30 PHP
PHP微信支付开发实例
2016/06/22 PHP
PHP实现根据数组的值进行分组的方法
2017/04/20 PHP
json 定义
2008/06/10 Javascript
在javascript将NodeList作为Array数组处理的方法
2010/07/09 Javascript
javascript倒计时功能实现代码
2012/06/07 Javascript
深入理解javascript严格模式(Strict Mode)
2014/11/28 Javascript
JavaScript中遍历对象的property的3种方法介绍
2014/12/30 Javascript
jQuery实现伸展与合拢panel的方法
2015/04/30 Javascript
JS+CSS实现简单滑动门(滑动菜单)效果
2015/09/19 Javascript
js弹出窗口返回值的简单实例
2016/05/28 Javascript
浅析上传头像示例及其注意事项
2016/12/14 Javascript
javaScript实现滚动条事件详解
2020/03/24 Javascript
分享5个好用的javascript文件上传插件
2018/09/16 Javascript
vue自定义tap指令及tap事件的实现
2018/09/18 Javascript
解决ie11 SCRIPT5011:不能执行已释放Script的代码问题
2019/05/05 Javascript
利用vue-i18n实现多语言切换效果的方法
2019/06/19 Javascript
微信小程序之下拉列表实现方法解析(附完整源码)
2019/08/23 Javascript
在vue中封装的弹窗组件使用队列模式实现方法
2020/07/23 Javascript
[01:51]DAC趣味视频-如何成为职业选手.mp4
2017/04/02 DOTA
Linux下用Python脚本监控目录变化代码分享
2015/05/21 Python
对Python通过pypyodbc访问Access数据库的方法详解
2018/10/27 Python
python dict 相同key 合并value的实例
2019/01/21 Python
pyqt5之将textBrowser的内容写入txt文档的方法
2019/06/21 Python
简单分析python的类变量、实例变量
2019/08/23 Python
Django ORM 查询表中某列字段值的方法
2020/04/30 Python
Python操控mysql批量插入数据的实现方法
2020/10/27 Python
生物化工专业个人自荐信
2013/09/26 职场文书
外科实习自我鉴定
2013/10/06 职场文书
高级人员简历的自我评价分享
2013/11/03 职场文书
国土资源局开展党的群众路线教育实践活动整改措施
2014/09/26 职场文书
2015年社区卫生工作总结
2015/04/21 职场文书
幼儿教师三分钟演讲稿
2019/06/21 职场文书
高中16字霸气押韵班级口号集锦!
2019/06/27 职场文书
详解MySQL连接挂死的原因
2021/05/18 MySQL
MySQL分区以及建索引的方法总结
2022/04/13 MySQL