Guido van Rossum
Palaksanaan énggal sapertos operator "cocok" anu disayogikeun dina Scala, Rust, sareng F #, anu ngabandingkeun hasil éksprési anu ditangtukeun sareng daptar pola anu didaptarkeun dina blok dumasar kana operator "kasus". Beda sareng operator "switch" anu aya dina C, Java, sareng JavaScript, ekspresi dumasar "cocok" nawiskeun langkung seueur.
def http_error(status):
status pertandingan:
kasus 400:
balikkeun "Paménta goréng"
kasus 401|403|404:
balikkeun "Teu diwenangkeun"
kasus 418:
balik "Abdi teh teko"
kasus_:
balik deui "Lain"
Contona, anjeun tiasa ngabongkar obyék, tuples, daptar, sareng sekuen sawenang-wenang pikeun ngabeungkeut variabel dumasar kana nilai anu aya. Diidinan pikeun ngartikeun témplat nested, nganggo tambahan "upami" kaayaan dina citakan, nganggo masker ("[x, y, *rest]"), pemetaan konci / nilai (contona, {"bandwidth": b, "latency ”: l} pikeun nimba nilai "bandwidth" sareng "latency" sareng kamus), ekstrak subtemplates (":=" operator), nganggo konstanta anu dingaranan dina citakan. Dina kelas, kasebut nyaéta dimungkinkeun pikeun ngaluyukeun kabiasaan cocog ngagunakeun métode "__match__()".
ti dataclasses impor dataclass
@dataclass
Titik kelas:
x: inuh
y: int
def whereis (titik):
titik pertandingan:
titik kasus (0, 0):
print ("Asal")
titik titik(0, y):
print(f"Y={y}")
Titik kasus(x, 0):
nyitak(f"X={x}")
titik kasus ():
print ("Di tempat séjén")
kasus_:
print ("Henteu titik")
titik pertandingan:
titik titik (x, y) lamun x == y:
print(f"Y=X dina {x}")
Titik (x, y):
print(f"Henteu dina diagonal")
BEUREUM, HÉJÉ, BIRU = 0, 1, 2
warna cocog:
kasus .BEureum:
print ("Kuring ningali beureum!")
kasus .héjo:
print("Jukut téh héjo")
kasus .BLU
E:
print("Kuring ngarasa blues :(")
Hiji set geus disiapkeun keur review
sumber: opennet.ru