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实现dict版图遍历示例
Feb 19 Python
python的mysqldb安装步骤详解
Aug 14 Python
python matplotlib绘图,修改坐标轴刻度为文字的实例
May 25 Python
Pycharm+Scrapy安装并且初始化项目的方法
Jan 15 Python
numpy下的flatten()函数用法详解
May 27 Python
Python求凸包及多边形面积教程
Apr 12 Python
python实现交并比IOU教程
Apr 16 Python
Pyinstaller 打包发布经验总结
Jun 02 Python
如何用Anaconda搭建虚拟环境并创建Django项目
Aug 02 Python
基于Python实现全自动下载抖音视频
Nov 06 Python
Python list和str互转的实现示例
Nov 16 Python
pandas中DataFrame检测重复值的实现
May 26 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
Codeigniter控制器controller继承问题实例分析
2016/01/19 PHP
PHP strip_tags保留多个HTML标签的方法
2016/05/22 PHP
关于php开启错误提示的总结
2019/09/24 PHP
些很实用且必用的小脚本代码
2006/06/26 Javascript
JavaScript接口实现代码 (Interfaces In JavaScript)
2010/06/11 Javascript
利用javascript的面向对象的特性实现限制试用期
2011/08/04 Javascript
jquery 提交值不为空的元素示例代码
2013/05/10 Javascript
Javascript基础知识(二)事件
2014/09/29 Javascript
jQuery实现精美的多级下拉菜单特效
2015/03/14 Javascript
jQuery短信验证倒计时功能实现方法详解
2016/05/25 Javascript
Bootstrap 3 进度条的实现
2017/02/22 Javascript
mui 打开新窗口的方式总结及注意事项
2017/08/20 Javascript
vue父子组件的嵌套的示例代码
2017/09/08 Javascript
HTML5开发Kinect体感游戏的实例应用
2017/09/18 Javascript
vue动态路由配置及路由传参的方式
2018/05/23 Javascript
[01:16:28]DOTA2-DPC中国联赛 正赛 iG vs Magma BO3 第二场 2月23日
2021/03/11 DOTA
Python运行DLL文件的方法
2020/01/17 Python
Python如何在DataFrame增加数值
2020/02/14 Python
Python爬虫爬取百度搜索内容代码实例
2020/06/05 Python
PyCharm MySQL可视化Database配置过程图解
2020/06/09 Python
Python中的__init__作用是什么
2020/06/09 Python
python 利用Pyinstaller打包Web项目
2020/10/23 Python
详解pandas映射与数据转换
2021/01/22 Python
NARS化妆品官方商店:美国彩妆品牌
2017/08/26 全球购物
英国奢侈品牌时尚购物平台:Farfetch(支持中文)
2020/02/18 全球购物
财务会计专业个人求职信范本
2014/01/08 职场文书
目标管理责任书
2014/04/15 职场文书
机械电子工程专业自荐书
2014/06/10 职场文书
导游欢迎词范文
2015/01/23 职场文书
2015年复活节活动总结
2015/02/27 职场文书
2015年大学班长个人工作总结
2015/04/24 职场文书
2015年教师学期工作总结
2015/04/30 职场文书
庆元旦主持词
2015/07/06 职场文书
vue点击弹窗自动触发点击事件的解决办法(模拟场景)
2021/05/25 Vue.js
MySQL的prepare使用以及遇到的bug
2022/05/11 MySQL
Go微服务项目配置文件的定义和读取示例详解
2022/06/21 Golang