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实现的生成自我描述脚本分享(很有意思的程序)
Jul 18 Python
简单的编程0基础下Python入门指引
Apr 01 Python
Python聚类算法之DBSACN实例分析
Nov 20 Python
Python设计模式之MVC模式简单示例
Jan 10 Python
Python实现PS滤镜功能之波浪特效示例
Jan 26 Python
python smtplib模块实现发送邮件带附件sendmail
May 22 Python
Django ManyToManyField 跨越中间表查询的方法
Dec 18 Python
centos 安装Python3 及对应的pip教程详解
Jun 28 Python
python实现静态web服务器
Sep 03 Python
Django继承自带user表并重写的例子
Nov 18 Python
利用pyshp包给shapefile文件添加字段的实例
Dec 06 Python
python 生成任意形状的凸包图代码
Apr 16 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
星际争霸 Starcraft 发展史
2020/03/14 星际争霸
PHP字符串函数系列之nl2br(),在字符串中的每个新行 (\n) 之前插入 HTML 换行符br
2011/11/10 PHP
php实现邮件发送并带有附件
2014/01/24 PHP
PHP使用内置函数生成图片的方法详解
2016/05/09 PHP
php基于Redis消息队列实现的消息推送的方法
2018/11/28 PHP
PHP设计模式入门之迭代器模式原理与实现方法分析
2020/04/26 PHP
fireworks菜单生成器mm_menu.js在 IE 7.0 显示问题的解决方法
2009/10/20 Javascript
JS延迟加载(setTimeout) JS最后加载
2010/07/15 Javascript
javascript里使用php代码实例
2014/12/13 Javascript
Javascript 运动中Offset的bug解决方案
2014/12/24 Javascript
详解Bootstrap四种图片样式
2016/01/04 Javascript
简单掌握JavaScript中const声明常量与变量的用法
2016/05/21 Javascript
JS JSOP跨域请求实例详解
2016/07/04 Javascript
JS实现的驼峰式和连字符式转换功能分析
2016/12/21 Javascript
微信小程序 setData使用方法及常用错误解决办法
2017/05/11 Javascript
JavaScript运动框架 链式运动到完美运动(五)
2017/05/18 Javascript
vue脚手架搭建项目的兼容性配置详解
2018/07/17 Javascript
node.js调用C++函数的方法示例
2018/09/21 Javascript
JS highcharts实现动态曲线代码示例
2020/10/16 Javascript
[56:38]DOTA2-DPC中国联赛正赛Aster vs Magma BO3 第一场 3月5日
2021/03/11 DOTA
Tensorflow 利用tf.contrib.learn建立输入函数的方法
2018/02/08 Python
python实现拓扑排序的基本教程
2018/03/11 Python
python使用matplotlib画饼状图
2018/09/25 Python
详解Python使用Plotly绘图工具,绘制甘特图
2019/04/02 Python
django表单的Widgets使用详解
2019/07/22 Python
解决pycharm每次打开项目都需要配置解释器和安装库问题
2020/02/26 Python
Python实现图片查找轮廓、多边形拟合、最小外接矩形代码
2020/07/14 Python
python 服务器运行代码报错ModuleNotFoundError的解决办法
2020/09/16 Python
python获取天气接口给指定微信好友发天气预报
2020/12/28 Python
Silk’n激光脱毛器官网:silkn.com
2016/10/06 全球购物
人事行政主管岗位职责
2013/12/22 职场文书
《小儿垂钓》教学反思
2014/02/23 职场文书
企业授权委托书范本
2014/09/22 职场文书
公安局负责人查摆问题及整改方案
2014/09/27 职场文书
2014年党总支工作总结
2014/12/18 职场文书
导游词之日月潭
2019/11/05 职场文书