Python 中是否可以使用条件语句作为匹配语句的情况?
工作是这样的:
test = 'Aston Martin'
makes = ['Aston Martin', 'Bentley']
match test:
case if test in makes:
print(True)
case _:
print(False)
Run Code Online (Sandbox Code Playgroud)
我知道 match/case 并不是在寻找具有布尔值 True 的东西,但这似乎对于缩放事物很有用。
我尝试将其作为函数来执行,以便您可以返回精确匹配:
test = 'Aston Martin'
makes = ['Aston Martin', 'Bentley']
def return_bool(item, lists):
if item in lists:
return item
else:
return 'notmatching'
match test:
case return_bool(test, makes):
print(True)
case _:
print(False)
Run Code Online (Sandbox Code Playgroud)
这也行不通。我认为它期待一个格式输出,例如str(x).