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@UnwrapValidatedValue和Spring LocalValidatoryFactoryBean   JavaSpring静态资源映射:控制器与addResourceHandler   java Android SurfaceView视频重叠   java Android字符串资源上标   docker Dockerfile在找不到Java类时失败,如何指定类路径或jar/mvnw?   java如何让扫描仪从用户输入中选择关键字?   java Sleuth不会在spring boot应用程序中打印spanId和traceId   java为什么客户端不能从订阅中获取信息?   jboss您如何继续学习企业Java应用服务器?   java Bukkit插件语法错误:语法错误,插入“}”以完成类体   在数据库中保存java GCM消息时出错   来自单个数组的java循环对象   java如何使用multple@Path参数进行改造   java layoutinflater不会膨胀整个布局   Java 8并行排序与Scala并行排序   java如何打印出数组中的最后一项   当试图创建HSSFWorkbook时,java代码“部分崩溃”   java索引多维数组