Na fautuaina e Guido van Rossum le faʻaopoopoina o mamanu faʻatusa i le Python

Guido van Rossum faʻalauiloa ata faataitai mo iloiloga a nuu auiliiliga mo le faʻatinoina o faʻataʻitaʻiga faʻatusa (match and case) i le Python. E tatau ona maitauina o talosaga mo le faʻaopoopoina o faʻataʻitaʻiga faʻatusa ua uma ona lolomiina i le 2001 ma le 2006 (pep-0275, pep-3103), ae sa teena i le faavasegaina o le “afai ... elif ... isi” fau mo le tuufaatasia o filifili tutusa.

O le faʻatinoga fou e pei lava o le "match" operator o loʻo tuʻuina atu i le Scala, Rust, ma le F #, lea e faʻatusatusa ai le taunuuga o se faʻamatalaga faʻamaonia ma se lisi o mamanu o loʻo lisiina i poloka e faʻavae i luga o le "case" operator. E le pei o le "switch" operator o loʻo maua ile C, Java, ma le JavaScript, o faʻamatalaga faʻavae "match" e ofoina atu le tele o isi mea. lautele galuega tauave. O loʻo maitauina o le a faʻaleleia e le au faʻatulagaina le faʻaogaina o le code, faʻafaigofie le faʻatusatusaina o mea faʻapitoa a le Python ma le debugging, ma faʻateleina foi le faʻamaoni o le code ona o le avanoa e faʻalauteleina. su'ega tu'aiga tu'usa'o.

def http_error(tulaga):
tulaga tutusa:
tulaga 400:
toe faafoi "Talosaga leaga"
mataupu 401|403|404:
toe faafoi "E le faatagaina"
tulaga 418:
toe fo'i mai "O a'u o se teapot"
mataupu_:
toe foi mai "se isi mea"

Mo se faʻataʻitaʻiga, e mafai ona e tatalaina mea, tuples, lisi, ma faʻasologa faʻasolosolo e fusifusia ai fesuiaiga e faʻatatau i tau o loʻo iai. E fa'ataga ona fa'amatala fa'ata'ita'iga fa'aputu, fa'aoga tu'utu'uga fa'aopoopo "pe a" i le fa'ata'ita'iga, fa'aoga matapulepule ("[x, y, *malo]"), fa'afanua ki/taua (fa'ata'ita'iga, {"bandwidth": b, “latency ”: l} e aveese ai le "bandwidth" ma le "latency" values ​​​​ma le lomifefiloi), aveese subtemplates (":=" operator), faʻaaoga igoa tumau i le mamanu. I totonu o vasega, e mafai ona faʻavasegaina faʻatusa amioga e faʻaaoga ai le "__match__()" metotia.

mai dataclasses fa'aulufale mai dataclass

@dataclass
Vaega o le vasega:
x:int
y:int

def whereis(point):
togi fa'atusa:
mata'itusi tulaga(0, 0):
lolomi("Amataga")
mata'itusi Fa'ailoga(0, y):
lolomi(f"Y={y}")
mata'itusi Fa'ailoga(x, 0):
lolomi(f"X={x}")
mataupu Point():
lolomi("I se isi mea")
mataupu_:
lolomi("Leai se manatu")

togi fa'atusa:
mata'itusi Point(x, y) pe afai x == y:
lolomi(f"Y=X ile {x}")
mata'itusi Fa'ailoga(x, y):
lolomi(f"E le'o i luga o le fa'ailoga")

mūmū, lanumeamata, lanumoana = 0, 1, 2
lanu fetaui:
mataupu .MULAU:
lolomi("Ua ou iloa le mumu!")
mataupu .MUNUU:
lolomi("Mutia e lanu meamata")
mataupu .BLU
E:
print(“Ua ou lagona le le fiafia :(“)

Ua saunia se seti mo le iloiloga patch fa'atasi ai ma fa'ata'ita'iga faʻatinoina fa'atonuga fa'atulagaina, ae o lo'o iai pea le fa'asologa mulimuli talanoaina. Mo se faʻataʻitaʻiga ofoina Nai lo le fa'amatalaga "mataupu _:" mo le tau fa'aletonu, fa'aoga le upu "else:" po'o le "default:", talu ai o le "_" i isi tulaga o lo'o fa'aaogaina o se fesuiaiga le tumau. E fesiligia foi le faʻalapotopotoga i totonu, lea e faʻavae i luga o le faʻaliliuina o faʻamatalaga fou i le bytecode tutusa ma le faʻaaogaina mo le "pe a ... elif ... isi" fau, lea o le a le maua ai le faʻatinoga manaʻomia pe a faʻagasolo seti tele o faʻatusatusaga.

puna: opennet.ru

Faaopoopo i ai se faamatalaga