python2.7通过字典实现java的switch-case模式匹配(代码有注释)
2017-05-04 21:46
901 查看
模式匹配python版: 不同于java的swith-case 和 scala的match-case, Python里面没有这类关键字. 所以只能通过字典实现: 先定义一个字典以确定映射关系,再通过get('key')方法获取到字典里面对应的值, 值可以是之前定义过的函数或者其他数据类型),最后调用函数并传参,由函数的代码完成运算
============python代码开始============
#encoding:utf-8# PYTHON中的类库称为模块,实际上每个模块就是个.py文件from __future__ import print_function# 和scala语法一样,可以在任意位置导入模块from __future__ import divisiondef add(x,y,*tp,**dic):return x+ydef sub(x,y, *tp, **dic):return x-ydef mul(x,y, *tp, ** dic):return x*ydef div(x, y, *tp, **dic):return x/y # division模块保证:x/y不是整除,而是数学中的除法,即1/8等于0.125而不是0# *tp表示把冗余的参数存放到元祖tp里面, **dic表示把多出来的字典类型参数放到字典型的dic里面def power(x,y,*tp, **dic):print("redundant args(tp):",tp)print("redundant args(dic):",dic)return x**ydirect_add = add(1, 2, 3, 4, 5, "abcde", "hello")print("直接调用add结果:" + str(direct_add))# 定义一个字典,字典dict是python的内置数据类型,相当于java中的Map,都能用来表示映射关系
# 以运算符作key, 以对应的计算函数作valueops = {"+":add,"-":sub,"*": mul,"/":div,"**":power}# 传入冗余参数,查看python中如何接收res0 = ops.get("**")(1, 2, 3, 4, 5, "abcde", "hello",{0:"zero", 'one':1})print ("1的2次方:%s" % res0)res1 = ops.get("/")(1,2,)print ("匹配 / 结果: ",res1)res2 = ops.get('*')(1, 2)print("匹配 * 结果:",res2)res3 = ops['+'](1,2)print ("匹配加法结果: ",res3)operator = '-'res4 = ops.get(operator)(1, 2)print ("匹配减法结果: ",res4)
============python代码结束============
运行上述python脚本,控制台输出内容如下:
直接调用add结果:3redundant args(tp): (3, 4, 5, 'abcde', 'hello', {0: 'zero', 'one': 1})redundant args(dic): {}1的2次方:1匹配 / 结果: 0.5匹配 * 结果: 2匹配加法结果: 3匹配减法结果: -1
相关文章推荐
- python中Switch/Case实现的示例代码
- Python3 -- 通过pandas实现快速创建java实体代码模板
- 使用Python函数和字典实现Java中的switch功能
- 设计模式之迭代器模式java实现代码
- PhoneGap中通过Plugin实现JS调用Java代码
- python通过BF算法实现关键词匹配的方法
- python中实现将普通字典dict转换为java中的treeMap
- 【转载】Java通过JDBC分别采用Windows身份验证模式和混合验证模式连接登录SQL Server2008数据库代码
- iphone开发之通过代理模式实现自定义控件——代码示例图片库的处理
- 输入年月日,输出这个日期是该年的第几天,java语言,switch-case实现
- 转载网络上最简单易懂的KMP模式匹配算法——外加代码实现
- JAVA版Future模式实现代码
- 通过java备份恢复mysql数据库的实现代码
- python通过线程实现定时器timer的代码
- KNN算法例子(java,scala,python 代码实现)
- 实现抽取java中的注释的代码
- 通过 python的 __call__ 函数与元类 实现单例模式
- python2.7添加注释后,代码无法保存
- Animation Tween动画可以通过java代码实现,也可以通过xml布局来实现
- KNN算法java实现代码注释