Egi*_*ius 78 python match switch-statement python-3.10
我正在尝试在类似于下面所示的函数中使用多个案例,以便我能够使用 python 3.10 中的匹配案例来执行多个案例
def sayHi(name):
match name:
case ['Egide', 'Eric']:
return f"Hi Mr {name}"
case 'Egidia':
return f"Hi Ms {name}"
print(sayHi('Egide'))
Run Code Online (Sandbox Code Playgroud)
即使我删除了方括号,这只是返回None而不是消息。
khe*_*ood 136
根据\n What\xe2\x80\x99s New In Python 3.10、\n PEP 636和\n文档,\n您使用了|Between 模式:
case \'Egide\' | \'Eric\':\nRun Code Online (Sandbox Code Playgroud)\n
Bla*_*ake 27
您可以使用|(或) 来替换['Egide', 'Eric']with 'Egide' | 'Eric',但您也可以将属于可迭代对象或容器的元素与守卫匹配,如下所示:
CONSTANTS = ['a','b', ...] # a (possibly large) iterable
def demo(item):
match item:
case item if item in CONSTANTS:
return f"{item} matched"
case _:
return f"No match for {item}"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
59496 次 |
| 最近记录: |