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写的英文字符大小写转换代码示例
Mar 06 Python
利用Python抓取行政区划码的方法
Nov 28 Python
Python将主机名转换为IP地址的方法
Aug 14 Python
Python模块汇总(常用第三方库)
Oct 07 Python
django 实现celery动态设置周期任务执行时间
Nov 19 Python
python如何实现不可变字典inmutabledict
Jan 08 Python
pytorch实现建立自己的数据集(以mnist为例)
Jan 18 Python
Jupyter notebook无法导入第三方模块的解决方式
Apr 15 Python
tensorflow使用CNN分析mnist手写体数字数据集
Jun 17 Python
实例代码讲解Python 线程池
Aug 24 Python
python如何设置静态变量
Sep 07 Python
python 对xml解析的示例
Feb 27 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
ThinkPHP之A方法实例讲解
2014/06/20 PHP
学习php设计模式 php实现桥梁模式(bridge)
2015/12/07 PHP
老生常谈PHP面向对象之注册表模式
2017/05/26 PHP
PHP的new static和new self的区别与使用
2019/11/27 PHP
JScript中的"this"关键字使用方式补充材料
2007/03/08 Javascript
40个有创意的jQuery图片、内容滑动及弹出插件收藏集之一
2011/12/31 Javascript
mailto的使用技巧分享
2012/12/21 Javascript
jquery 插件实现瀑布流图片展示实例
2015/04/03 Javascript
javascript实现网页端解压并查看zip文件
2015/12/15 Javascript
vue.js 初体验之Chrome 插件开发实录
2017/05/13 Javascript
js实现拖拽上传图片功能
2017/08/01 Javascript
jQuery中过滤器的基本用法示例
2017/10/11 jQuery
详解Vue Elementui中的Tag与页面其它元素相互交互的两三事
2018/09/25 Javascript
Vue实现移动端左右滑动效果的方法
2018/11/27 Javascript
监控微信小程序中的慢HTTP请求过程详解
2019/07/05 Javascript
微信小程序 行的删除和增加操作实现详解
2019/09/29 Javascript
基于VSCode调试网页JavaScript代码过程详解
2020/07/20 Javascript
[01:13]2015国际邀请赛线下观战现场
2015/08/08 DOTA
Python使用Socket(Https)Post登录百度的实现代码
2012/05/18 Python
详解Python中break语句的用法
2015/05/14 Python
python获取元素在数组中索引号的方法
2015/07/15 Python
通过数据库对Django进行删除字段和删除模型的操作
2015/07/21 Python
Python入门之三角函数tan()函数实例详解
2017/11/08 Python
在PyCharm下打包*.py程序成.exe的方法
2018/11/29 Python
python实现栅栏加解密 支持密钥加密
2019/03/20 Python
Python socket服务常用操作代码实例
2020/06/22 Python
Django搭建项目实战与避坑细节详解
2020/12/06 Python
企业管理部经理岗位职责
2013/12/24 职场文书
安全教育月活动总结
2014/05/05 职场文书
趣味运动会广播稿
2014/09/13 职场文书
实习推荐信格式模板
2015/03/27 职场文书
立案决定书范文
2015/06/24 职场文书
2015初中生物教研组工作总结
2015/07/21 职场文书
2015年教务主任工作总结
2015/07/22 职场文书
如何计划开一家便利店?
2019/07/31 职场文书
详解Vue的列表渲染
2021/11/20 Vue.js