Ua manaʻo ʻo Guido van Rossum e hoʻohui i nā mea hana hoʻohālike i ka Python

ʻO Guido van Rossum hoopuka kiʻi no ka loiloi kaiaulu hoakaka no ka hoʻokō ʻana i nā mea hana hoʻohālikelike (match a case) ma Python. Pono e hoʻomaopopo ʻia ua paʻi mua ʻia nā manaʻo e hoʻohui i nā mea hoʻohana like ma 2001 a me 2006 (pep-0275, pep-3103), akā ua hōʻole ʻia no ka hoʻomaikaʻi ʻana i ka hana "if ... elif ... else" no ka hoʻohui ʻana i nā kaulahao pili.

ʻO ka hoʻokō hou e like me ka mea hoʻohana "match" i hāʻawi ʻia ma Scala, Rust, a me F #, e hoʻohālikelike ana i ka hopena o kahi ʻōlelo kikoʻī me kahi papa inoa o nā hiʻohiʻona i helu ʻia i loko o nā poloka e pili ana i ka mea hana "case". ʻAʻole like me ka mea hoʻohana "hoʻololi" i loaʻa ma C, Java, a me JavaScript, hāʻawi ʻia nā ʻōlelo "match"-based. hana ākea. Hoʻomaopopo ʻia e hoʻomaikaʻi nā mea hana i manaʻo ʻia i ka heluhelu ʻana o ke code, maʻalahi i ka hoʻohālikelike ʻana o nā mea Python arbitrary a me ka debugging, a hoʻonui pū i ka hilinaʻi o ke code mahalo i ka hiki ke hoʻonui. ka nānā ʻana i ke ʻano paʻa.

def http_error(kūlana):
kūlana hoʻokūkū:
hihia 400:
hoʻihoʻi "Nīnau maikaʻi ʻole"
hihia 401|403|404:
hoʻihoʻi "ʻAʻole ʻae ʻia"
hihia 418:
hoʻi mai "He kīʻaha wau"
hihia_:
hoʻihoʻi "Kekahi mea ʻē aʻe"

No ka laʻana, hiki iā ʻoe ke wehe i nā mea, nā tuples, nā papa inoa, a me nā kaʻina like ʻole e hoʻopaʻa i nā mea hoʻololi e pili ana i nā waiwai i loaʻa. ʻAe ʻia ka wehewehe ʻana i nā mamana nested, hoʻohana i nā kūlana "inā" hou i ka template, hoʻohana i nā masks ("[x, y, *rest]"), kī/waiwai palapala palapala (no ka laʻana, {"bandwidth": b, "latency ”: l} e unuhi i ka waiwai "bandwidth" a me ka "latency" a me ka puke wehewehe'ōlelo), e unuhi i nā subtemplates (":=" operator), e hoʻohana i nā mea i kapa ʻia ma ka template. Ma nā papa, hiki ke hoʻopilikino i ke ʻano hoʻohālikelike me ke ʻano "__match__()".

mai nā papa ʻikepili e lawe mai i ka papa ʻikepili

@palapala ʻikepili
Lae papa:
x:int
y:int

def whereis(point):
wahi hoʻokūkū:
helu helu(0, 0):
paʻi ("Origin")
helu helu(0, y):
paʻi(f"Y={y}")
kiko kiko(x, 0):
paʻi(f"X={x}")
helu helu():
print("Ma kahi ʻē aʻe")
hihia_:
print("ʻAʻole kahi helu")

wahi hoʻokūkū:
helu helu(x, y) ina x == y:
paʻi(f"Y=X ma {x}")
kiko kiko(x, y):
print(f"ʻAʻole ma ka diagonal")

ʻulaʻula, ʻōmaʻomaʻo, uliuli = 0, 1, 2
kala like:
hihia .RED:
print ("ʻIke wau i ka ʻulaʻula!")
hihia .GREEN:
print("He ʻōmaʻomaʻo ka mauʻu")
hihia .BLU
E:
print("Ke manaʻo nei au i ka blues :(")

Ua hoʻomākaukau ʻia kahi pūʻulu no ka nānā ʻana nā pā me ka hoʻokolohua hoʻokō i manaʻo ʻia, akā ʻo ka mana hope loa kūkākūkā ʻia. Eia kekahi laʻana hāʻawi ʻia Ma kahi o ka huaʻōlelo "case _:" no ka waiwai paʻamau, e hoʻohana i ka huaʻōlelo "else:" a i ʻole "default:", no ka mea, ua hoʻohana ʻia ʻo "_" ma nā pōʻaiapili ʻē aʻe ma ke ʻano he loli manawaleʻa. He mea kānalua hoʻi ka hui kūloko, kahi i hoʻokumu ʻia ma ka unuhi ʻana i nā huaʻōlelo hou i ka bytecode e like me ka mea i hoʻohana ʻia no nā kūkulu "inā ... elif ... else", ʻaʻole ia e hāʻawi i ka hana i makemake ʻia i ka wā e hana ai i nā pūʻulu hoʻohālikelike nui loa.

Source: opennet.ru

Pākuʻi i ka manaʻo hoʻopuka