Mhol Guido van Rossum luchd-obrachaidh maidsidh a chuir ri Python

Guido van Rossum toirt a-steach dreachd airson ath-sgrùdadh coimhearsnachd sònrachaidhean airson gnìomhaichean maidsidh pàtrain (geama agus cùis) a chuir an gnìomh ann am Python. Bu chòir a thoirt fa-near gu bheil molaidhean airson gnìomhaichean maidsidh pàtrain a chur ris air am foillseachadh mar-thà ann an 2001 agus 2006 (peop-0275, peop-3103), ach chaidh an diùltadh airson an togalach “if ... elif ... eile” a bharrachadh airson slabhraidhean maidsidh a chuir ri chèile.

Tha am buileachadh ùr gu math coltach ris a’ ghnìomhaiche “maids” a chaidh a thoirt seachad ann an Scala, Rust, agus F #, a tha a’ dèanamh coimeas eadar toradh abairt ainmichte le liosta de phàtranan air an liostadh ann am blocaichean stèidhichte air a’ ghnìomhaiche “cùis”. Eu-coltach ris a’ ghnìomhaiche “switch” a tha ri fhaighinn ann an C, Java, agus JavaScript, tha abairtean stèidhichte air “maids” a’ tabhann mòran a bharrachd comas-gnìomh farsaing. Thathas a’ toirt fa-near gun leasaich na gnìomhaichean a tha san amharc comas leughaidh a’ chòd, sìmpleaichidh iad coimeas eadar nithean neo-riaghailteach Python agus debugging, agus cuideachd àrdaichidh iad earbsachd a’ chòd mar thoradh air comas leudachadh sgrùdadh seòrsa statach.

def http_error(inbhe):
inbhe co-ionnan:
cùis 400:
tilleadh "droch iarrtas"
cùis 401 | 403 | 404:
tilleadh "Chan eil e ceadaichte"
cùis 418:
tilleadh "Is e teapot a th' annam"
cùis_:
till "rudeigin eile"

Mar eisimpleir, faodaidh tu nithean, tuples, liostaichean, agus sreathan neo-riaghailteach a dhì-phapadh gus caochladairean a cheangal stèidhichte air luachan a tha ann mar-thà. Tha e ceadaichte teamplaidean neadachaidh a mhìneachadh, suidheachaidhean “ma tha” a bharrachd a chleachdadh san teamplaid, masgaichean a chleachdadh (“[x, y, * fois]”), mapaichean iuchrach / luach (mar eisimpleir, {“bandwidth”: b, “latency ” : l} gus luachan agus faclair “bandwidth” agus “latency” a thoirt a-mach), thoir a-mach fo-theamplaidean (" : = " gnìomhaiche), cleachd cunntachail ainmichte san teamplaid. Ann an clasaichean, tha e comasach giùlan maidsidh a ghnàthachadh a’ cleachdadh an dòigh “__match__()”.

bho dataclasses import dataclass

@dataclass
puing clas:
x:int
y:int

def far a bheil (puing):
puing maidsidh:
Puing cùise (0, 0):
clò-bhualadh ("Origin")
Puing cùise (0, y):
clò-bhualadh (f "Y = {y}")
Puing cùise (x, 0):
clò-bhualadh(f"X={x}")
Puing na cùise ():
print ("An àiteigin eile")
cùis_:
clò ("Chan e puing")

puing maidsidh:
puing cùis (x, y) ma tha x == y:
clò-bhualadh (f "Y = X aig {x}")
Puing cùise (x, y):
clò (f "Chan ann air an trastain")

RED, GREEN, GORM = 0, 1, 2
dath co-ionnan:
chùis .RED:
print ("Tha mi a' faicinn dearg!")
cùis .GREEN:
clò ("Tha feur uaine")
cùis .BLU
E:
clò (“ tha mi a’ faireachdainn na blues :(”)

Chaidh seata ullachadh airson ath-sgrùdadh badannan le deuchainneach buileachadh sònrachadh a thathar a’ moladh, ach tha an dreach deireannach fhathast air a dheasbad. Mar eisimpleir air a thairgsinn An àite na h-abairt "case _:" airson an luach bunaiteach, cleachd am prìomh fhacal "eile:" no "default:", oir tha "_" ann an co-theacsan eile air a chleachdadh mar chaochladair sealach. Tha e teagmhach cuideachd a’ bhuidheann a-staigh, a tha stèidhichte air eadar-theangachadh abairtean ùra gu bytecode coltach ris an fhear a thathas a’ cleachdadh airson togail “ma tha ... elif ... eile”, nach toir seachad an coileanadh a tha thu ag iarraidh nuair a thathar a’ giullachd sheataichean fìor mhòr de choimeasan.

Source: fosgailtenet.ru

Cuir beachd ann