[Python] match-case: Python 中的 Switch-case

match Statement

match subject:
  case <pattern_1>:
    <action_1>
  case <pattern_2>:
    <action_2>
  case <pattern_3> | <pattern_4>: # multi-patterns
    <action_3_4>
  case _: # otherwise
    <action_wildcard>

等同:

if subject == <pattern_1>: 
  <action_1> 
elif subject == <pattern_2>: 
  <action_2> 
elif subject == <pattern_3> or subject ==<pattern_4>: 
  <action_3_4> 
else: 
  <action_wildcard>

等同 C 的 switch-case :

switch(subject):
  case <pattern_1>:
    <action_1>
    break
  case <pattern_2>:
    <action_2>
    break
  case <pattern_3>:
  case <pattern_4>:
    <action_3_4>
    break
  default:
    <action_wildcard>

Patterns can be Used to Bind Variables

match point: # point is a (x, y) tuple
  case (0, 0):
    // ...
  case (0, y):
    // ...
  case (x, 0):
    // ...
  case (x, y):
    // ...
  case _:
   raise ValueError("Not a point")

case … if …:

Last Updated on 2024/12/02 by A1go

目錄
Bitnami