I whakaaro a Guido van Rossum ki te taapiri i nga kaiwhakariterite tauira ki te Python

Guido van Rossum whakaurua tauira mo te arotake hapori whakaritenga mo te whakatinana i nga kaiwhakariterite tauira (whakarite me te keehi) i roto i te Python. Me tohu kua puta kee nga tono ki te taapiri i nga kaiwhakariterite tauira i te tau 2001 me te 2006 (pep-0275, pep-3103), engari i paopaohia mo te arotau ki te hanga "mehemea ... elif ... atu" mo te whakahiato i nga mekameka taurite.

Ko te whakatinanatanga hou he rite tonu ki te kaiwhakahaere "match" e whakaratohia ana i roto i te Scala, Rust, me te F #, e whakataurite ana i te hua o te korero kua tohua me te rarangi o nga tauira kua tohua ki roto i nga poraka i runga i te kaiwhakahaere "take". Kaore i rite ki te kaiwhakahaere "whakawhiti" e waatea ana i C, Java, me JavaScript, he maha atu nga korero a te "match" mahi whanui. E tohuhia ana ka pai ake nga kaiwhakahaere e kii ana i te panui o te waehere, ka ngawari te whakataurite o nga mea a Python me te patuiro, me te whakanui ake i te pono o te waehere na te kaha o te roa. arowhai momo pateko.

def http_error(tūnga):
tūnga ōrite:
utu 400:
whakahokia "tono kino"
take 401|403|404:
whakahokia "Kare e whakaaetia"
utu 418:
hoki mai "He teapot ahau"
take_:
hoki mai "He mea ke atu"

Hei tauira, ka taea e koe te wetewete i nga ahanoa, nga tuple, nga rarangi, me nga raupapa tuku noa hei here i nga taurangi i runga i nga uara o mua. Ka whakaaetia ki te tautuhi i nga tauira kohanga, te whakamahi i etahi atu tikanga "mehemea" i roto i te tauira, whakamahi kopare (“[x, y, *rest]”), mapi matua/uara (hei tauira, {“bandwidth”: b, “latency ”: l} ki te tango i nga uara "bandwidth" me te "latency" me te papakupu), tango tauiraroto (":=" operator), whakamahia nga taumau kua whakaingoatia ki te tauira. I roto i nga karaehe, ka taea te whakarite i te whanonga orite ma te whakamahi i te tikanga "__match__()".

mai i nga akomanga raraunga kawemai i te akomanga raraunga

@raungaraunga
ira akomanga:
x:int
y:int

def whereis(tohu):
wāhi ōrite:
Ira take(0, 0):
tā("Putaketanga")
Ira take(0, y):
tā(f"Y={y}")
Ira take(x, 0):
tā(f"X={x}")
Ira take():
print("Kotahi atu wahi")
take_:
print("Kaore he tohu")

wāhi ōrite:
take Ira(x, y) mena x == y:
tā(f"Y=X i {x}")
Ira take(x, y):
tā(f"Kare i te hauroki")

Whero, KAKAriki, KURU = 0, 1, 2
tae ōrite:
take .Whero:
print("Ka kite ahau i te whero!")
take .KAKAKAO:
print("He kakariki te tarutaru")
take .BLU
E:
print("Kei te rongo ahau i te puru:")

Kua whakaritea he huinga mo te arotake papaki me te whakamatautau whakatinanatanga whakatakotoranga e whakaarohia ana, engari kei te noho tonu te putanga whakamutunga korerohia. Hei tauira, tuku Hei utu mo te kupu "take _:" mo te uara taunoa, whakamahia te kupu matua "else:" ranei "taunoa:", mai i te "_" i etahi atu horopaki ka whakamahia hei taurangi rangitahi. He patai ano hoki ko te whakahaere o roto, e ahu mai ana i te whakamaoritanga o nga korero hou ki te bytecode rite ki tera e whakamahia ana mo te "mehemea ... elif ... atu" nga hanganga, e kore e whakarato i nga mahi e hiahiatia ana i te wa e tukatuka ana i nga huinga whakataurite nui rawa atu.

Source: opennet.ru

Tāpiri i te kōrero