Guido van Rossum tụrụ aro ịgbakwunye ndị na-arụ ọrụ kwekọrọ ụkpụrụ na Python

Guido van Rossum webatara akwụkwọ maka nyocha obodo nkọwa maka mmejuputa atumatu ndị na-arụ ọrụ na-adakọ (match and case) na Python. Ekwesiri iburu n'uche na ebipụtalarị atụmatụ iji tinye ndị na-arụ ọrụ kwekọrọ na 2001 na 2006 (nke-0275, nke-3103), mana a jụrụ ya maka ịkwalite “ma ọ bụrụ ... elif ... ọzọ” maka ịchịkọta ụdọ dakọtara.

Mmejuputa ọhụrụ a dị ka onye na-arụ ọrụ "egwuregwu" nyere na Scala, Rust, na F#, nke na-atụnyere nsonaazụ nke okwu akọwapụtara na ndepụta nke usoro edepụtara na ngọngọ dabere na onye ọrụ "ikpe". N'adịghị ka onye ọrụ "switch" dị na C, Java, na JavaScript, okwu dabere na "match" na-enye ọtụtụ ihe ndị ọzọ. ọrụ sara mbara. Achọpụtara na ndị ọrụ a na-atụ aro ga-eme ka ọgụgụ nke koodu ahụ dịkwuo mma, mee ka ntụnyere nke ihe Python aka ike na nbipu, na-abawanye ntụkwasị obi nke koodu ahụ n'ihi na enwere ike ịgbatị. nlele ụdị static.

def http_error(ọnọdụ):
ọnọdụ egwuregwu:
ikpe 400:
weghachi "Arịrịọ ọjọọ"
ikpe 401|403|404:
laghachi "Adịghị ekwe"
ikpe 418:
laghachi "A bụ m teapot"
ikpe_:
laghachi "Ihe ọzọ"

Dịka ọmụmaatụ, ị nwere ike ibupu ihe, tuples, listi na usoro aka ike iji kechie mgbanwe dabere na ụkpụrụ dị adị. A na-ahapụ ya ịkọwapụta ndebiri akwụ ụgwọ, jiri ọnọdụ “ọ bụrụ” agbakwunyere na ndebiri, jiri ihe nkpuchi (“[x, y, *ezu ike]”), maapụ igodo/uru (dịka ọmụmaatụ, {“bandwidth”: b, “latency). ": l} iji wepụta "bandwidth" na "latency" ụkpụrụ na ọkọwa okwu), wepụta subtemplates (":=" onye ọrụ), jiri aha ya mere na template. Na klaasị, ọ ga-ekwe omume iji usoro “__match__()” hazie omume dakọtara.

site na klaasị data bubata klaasị

@dataclass
Ebe klaasị:
x:int
y:int

def ebe (atụ):
ebe egwuregwu:
Okwu ikpe (0, 0):
ebipụta ("Ozizi")
Okwu ikpe (0, y):
ebipụta (f"Y={y}")
Okwu ikpe (x, 0):
ebipụta (f"X={x}")
Okwu ikpe():
ebipụta ("Ebe ọzọ")
ikpe_:
ebipụta ("Ọ bụghị otu isi")

ebe egwuregwu:
Okwu ikpe (x, y) ma ọ bụrụ x == y:
bipụta (f"Y=X na {x}")
Okwu ikpe (x, y):
ebipụta (f"Ọ bụghị na diagonal")

Uhie, GREEN, Acha anụnụ anụnụ = 0, 1, 2
agba egwuregwu:
ikpe .RED:
ebipụta ("Ahụrụ m uhie!")
ikpe .GREEN:
ebipụta ("Ahịhịa bụ akwụkwọ ndụ akwụkwọ ndụ")
ikpe .BLU
E:
ebipụta ("A na m afụ ụfụ :(")

E kwadola otu maka nyocha patches na nnwale mmejuputa iwu nkọwapụta atụpụtara, mana ụdị ikpeazụ ka dị tụlere. Dịka ọmụmaatụ a na-enye Kama okwu "case _:" maka uru ndabara, jiri isiokwu "else:" ma ọ bụ "ndabara:", ebe ọ bụ na a na-eji "_" n'ọnọdụ ndị ọzọ dị ka mgbanwe nwa oge. Ihe ọzọ a na-enyo enyo bụ nzukọ dị n'ime, nke dabere na ịsụgharị okwu ọhụrụ n'ime bytecode yiri nke a na-eji maka "ma ọ bụrụ ... elif ... ọzọ" na-arụ ọrụ, nke na-agaghị enye ọrụ a chọrọ mgbe ị na-edozi nnukwu nhazi nke ntụnyere.

isi: opennet.ru

Tinye a comment