python的switch case语句
switch-case的Python项目详细描述
开关外壳
安装
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"