纯python中的switch case

switchcase的Python项目详细描述


switchcase在纯python中实现了一个简单的switch case构造。

在hood下,switch函数的工作原理是只返回一个length-1 包含匹配函数的列表。整个实现过程有3行:

fromoperatorimporteqdefswitch(value,comp=eq):return[lambdamatch:comp(match,value)]

基本用法

>>>fromswitchcaseimportswitch>>>deffunc(x):...forcaseinswitch(x):...ifcase(0):...print("x was 0")...break...ifcase(1):...print("x was 1")...break...else:...print("x was unmatched")>>>func(0)"x was 0">>>func(1)"x was 1">>>func(2)"x was unmatched"

自定义比较

默认情况下,switch使用operator.eq比较传递给 switch和随后传递给case的值。您可以覆盖 此行为通过将比较器函数作为秒传递给switch。 争论。

>>>importre>>>fromswitchcaseimportswitch>>>deff(x):...out=[]...forcaseinswitch(x,comp=re.match):...ifcase("foo_bar"):...out.append(0)...break...ifcase("foo_.*"):...out.append(1)...ifcase(".*_bar"):...out.append(2)...returnout>>>f("foo_bar")[0]>>>f("foo_notbar")[1]>>>f("notfoo_bar")[2]>>>f("foo____bar")[1,2]

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java IBM Notes 9电子邮件问题。自动从我的收件箱转发到另一个收件人   Android上的java覆盖删除键?   java More JPanel和背景图像   java AStar寻路|六角夹点   java Android存档库(aar)与标准jar   java转换docx后没有空行   java如何搜索FTS3表,使搜索的单词显示在列表的顶部   java运算符重载STL的性能损失是什么   java在本机SQL Hibernate中使用addJoin   使用hibernate的java动态列   java为什么整数在放入数组后会改变值?   如何将|系列与Java正则表达式匹配?   java问题在binarySearch中传递参数   Java:关于导入语句中使用的路径的愚蠢新手问题   java无法在文本框安卓中显示数据库中的数据   使用Java中的旧文件详细信息创建文件   java按降序进行升序快速排序