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 变量类型及命名规则介绍
Jun 08 Python
Python THREADING模块中的JOIN()方法深入理解
Feb 18 Python
浅谈Python中列表生成式和生成器的区别
Aug 03 Python
python使用pil进行图像处理(等比例压缩、裁剪)实例代码
Dec 11 Python
Python下载网络小说实例代码
Feb 03 Python
分享一下Python数据分析常用的8款工具
Apr 29 Python
Python实现查找数组中任意第k大的数字算法示例
Jan 23 Python
Python通用函数实现数组计算的方法
Jun 13 Python
记一次pyinstaller打包pygame项目为exe的过程(带图片)
Mar 02 Python
django迁移文件migrations的实现
Mar 31 Python
Python列表嵌套常见坑点及解决方案
Sep 30 Python
Python的property属性详细讲解
Apr 11 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中ADODB类详解
2008/03/25 PHP
ThinkPHP表单令牌错误的相关解决方法分析
2016/05/20 PHP
php中mkdir()函数的权限问题分析
2016/09/24 PHP
Laravel5.1 框架Middleware中间件基本用法实例分析
2020/01/04 PHP
jquery中eq和get的区别与使用方法
2011/04/14 Javascript
jquery ui对话框实例代码
2013/05/10 Javascript
NodeJS学习笔记之Http模块
2015/01/13 NodeJs
浅谈javascript的Touch事件
2015/09/27 Javascript
JavaScript 冒泡排序和选择排序的实现代码
2016/09/03 Javascript
vue-axios使用详解
2017/05/10 Javascript
jquery实现放大镜简洁代码(推荐)
2017/06/08 jQuery
Taro集成Redux快速上手的方法示例
2018/06/21 Javascript
jQuery实现checkbox全选功能完整实例
2018/07/12 jQuery
JavaScript设计模式之原型模式分析【ES5与ES6】
2018/07/26 Javascript
自定义Vue中的v-module双向绑定的实现
2019/04/17 Javascript
教你完全理解ReentrantLock重入锁
2019/06/03 Javascript
[02:28]DOTA2英雄基础教程 灰烬之灵
2013/12/19 DOTA
Python 不同对象比较大小示例探讨
2014/08/21 Python
基于python编写的微博应用
2014/10/17 Python
在服务器端实现无间断部署Python应用的教程
2015/04/16 Python
Python实现快速多线程ping的方法
2015/07/15 Python
python+opencv实现的简单人脸识别代码示例
2017/11/14 Python
Python使用OpenCV进行标定
2018/05/08 Python
python 信息同时输出到控制台与文件的实例讲解
2018/05/11 Python
python实现停车管理系统
2018/11/30 Python
对Django外键关系的描述
2019/07/26 Python
Python3 虚拟开发环境搭建过程(图文详解)
2020/01/06 Python
Python 使用 environs 库定义环境变量的方法
2020/02/25 Python
C++和python实现阿姆斯特朗数字查找实例代码
2020/12/07 Python
HTML5 WebSocket实现点对点聊天的示例代码
2018/01/31 HTML / CSS
英国工作场所设备购买网站:Slingsby
2019/05/03 全球购物
教师求职自荐信
2014/03/09 职场文书
施工协议书范本
2014/04/22 职场文书
大学社团活动总结
2014/04/26 职场文书
优秀班集体事迹材料
2014/12/25 职场文书
python函数指定默认值的实例讲解
2021/03/29 Python