# 结构模式匹配lunch_order = "taco"# 在最基本的使用情况下,可以使用可能出现的不同值来检查一个变量,这称为文本模式。match lunch_order:case "pizza":print("Pizza time!")case "sandwich":print("Here's your sandwich")case "taco":print("Taco, taco, TACO, tacotacotaco!")case _:# 下画线(_)是通配符,它将匹配任何值。这称为回退 case,必须放在最后,因为它将匹配任何内容。print("Yummy.")match lunch_order:case "taco":print("Taco, taco, TACO, tacotacotaco!")case "salad" | "soup":# 使用 or 模式,其中可能的字面值由竖线分隔print("Eating healthy, eh?")case _:print("Yummy.")match lunch_order:case "salad" | "soup":print("Eating healthy, eh?")case order:# 捕获模式,除了实现回退 Case 的效果之外,还会捕获到匹配的值。print(f"Enjoy your {order}.")lunch_order = ["taco", "salad"]match lunch_order:case "salad" | "soup":print("Eating healthy, eh?")case (flavor, "salad"):# 捕获模式,支持匹配元组或列表(序列)print(f"Enjoy your {order}.")class Special:today = "sandwich"pizza = "pizza"lunch_order = "soup"match lunch_order:case Special.today:# 有限定的名称,相当于读取变量print("Here's your sandwich")case "taco":print("Taco, taco, TACO, tacotacotaco!")case pizza:# 所有未限定的名称(即不含点号的简单变量名称)都将用于捕获。print("变量 pizza 实现为捕获模式")lunch_order = "soup"match lunch_order:case "taco":print("Taco, taco, TACO, tacotacotaco!")case so if "so" in so:# 为匹配模式添加额外的条件print(f"匹配到 {so}")case order:print(f"Enjoy your {order}.")
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。