Guido van Rossum
Sabuwar aiwatarwa tana kama da ma'aikacin "match" da aka bayar a cikin Scala, Rust, da F#, wanda ke kwatanta sakamakon ƙayyadaddun furci tare da jerin ƙirar da aka jera a cikin tubalan dangane da ma'aikacin "case". Ba kamar ma'aikacin "switch" da ke cikin C, Java, da JavaScript ba, maganganun tushen "match" suna ba da ƙarin ƙari.
def http_error(halaye):
Matsayin wasa:
hali 400:
mayar da "Bad request"
shafi 401|403|404:
dawo "Ba a yarda ba"
hali 418:
dawo "Ni katon shayi ne"
kaso_:
dawo "Wani abu kuma"
Misali, zaku iya cire fakitin abubuwa, tuples, jeri, da jeri na sabani don ɗaure masu canji dangane da ƙimar data kasance. An ba da izini don ayyana samfuran gida, yi amfani da ƙarin yanayi "idan" a cikin samfurin, yi amfani da abin rufe fuska ("[x, y, * hutawa]"), taswirar maɓalli/daraja (misali, {"bandwidth": b, "latency" ": l} don cire "bandwidth" da "latency" dabi'u da ƙamus), cire ƙananan samfura (": = " afareta ), yi amfani da madaidaitan suna a cikin samfuri. A cikin azuzuwan, yana yiwuwa a keɓance yanayin daidaitawa ta amfani da hanyar "__match__()".
daga azuzuwan bayanai shigo da dataclass
@dataclass
Matsayin aji:
x: in
y: in
def whereis(point):
wurin wasa:
Matsayin shari'a (0, 0):
buga ("Asalin")
Matsalolin shari'a (0, y):
buga (f"Y={y}")
Matsakaicin yanayi (x, 0):
buga (f"X={x}")
Case Point():
buga ("Wani wuri kuma")
kaso_:
buga ("Ba batu ba")
wurin wasa:
Case Point (x, y) idan x = y:
buga (f"Y=X a {x}")
case Point(x, y):
buga (f"Ba a kan diagonal")
JAN, GREEN, BLUE = 0, 1, 2
kalar wasa:
harka .JA:
buga ("Na ga ja!")
harka .GREEN:
buga ("Ciyawa kore ne")
kaso .BLU
E:
buga ("Ina jin blues :(")
An shirya saitin don dubawa
source: budenet.ru