python的switch case语句

switch-case的Python项目详细描述


开关外壳

LicenseTravisCodecovPyPIPython Version

安装

pip3 install switch_case

用法

fromswitch_caseimport*reason=(switch|case(_==200)>>'OK'|case(_==500)>>'ERROR'|default>>'UNKNOWN')
assertreason(200)=='OK'assertreason(500)=='ERROR'assertreason(400)=='UNKNOWN'

这是语法sugar for:

fromswitch_caseimport*fromoperatorimporteqreason=(switch|case(_/eq/200)>>'OK'|case(_/eq/500)>>'ERROR'|default>>'UNKNOWN')

所以您可以这样使用:

fromswitch_caseimport*get_type=(switch|case(_/isinstance/str)>>"string"|case(_/isinstance/int)>>"integer"|case(_/isinstance/float)>>"float"|case(_/isinstance/bool)>>"bool"|default>>"other")

或作为函数:

fromswitch_caseimport*defget_type(smth):return~(switch(smth)|case(_/isinstance/str)>>"string"|case(_/isinstance/int)>>"integer"|case(_/isinstance/float)>>"float"|case(_/isinstance/bool)>>"bool"|default>>"other")
assertget_type(42)=="integer"assertget_type("42")=="string"assertget_type(3.14)=="float"

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

推荐PyPI第三方库


热门话题
Java类之间并发性不一致的HashMap   插件如何在JavaSwing中使用UIManager和Classloader从外部jar安装外观?   java JasperReports:找不到子报表   在项目中找不到java生成的Javadoc文件   java BigDecimal。multiply()和divide()方法返回十六进制数。为什么?   java统计出现次数并从字符串中删除重复项   调用运算符时发生java NullPointerException   Spring和Hibernate之间的java配置错误   JavaZK将用户重定向回上一页   Javasocket为传出连接指定特定的网络接口   如果拖动到某个区域外,java Make按钮操作将被取消   如何在Eclipse for selenium 3.141.59中添加Java文档链接   java从匹配条件的数组中获取所有索引   docker未连接到RemoteWebDriver的java Gitlab ci selenium测试   java重写run方法   utf 8如何使用java解码UTF8编码的字符串?   java如何从eclipse调试部署在tomcat上的web应用程序?   将字母字符与前面没有百分号的Java正则表达式匹配