U-Guido van Rossum uhlongoze ukuthi kwengezwe ama-opharetha afanayo ku-Python

UGuido van Rossum kwethulwa okusalungiswa ukuze kubuyekezwe umphakathi Ukucaciswa ukuze kusetshenziswe ama-opharetha afanayo (umdlalo kanye necala) kuPython. Kumele kuqashelwe ukuthi iziphakamiso zokwengeza ama-opharetha afanayo sezivele zishicilelwe ngo-2001 no-2006 (isiqephu-0275, isiqephu-3103), kodwa zenqatshwa ukuze kuthuthukiswe ukwakhiwa kwe-“uma ... elif ... okunye” ukuze kuhlanganiswe amaketango ameshayo.

Ukusetshenziswa okusha kufana nomsebenzisi "womdlalo" onikezwe ku-Scala, Rust, kanye no-F#, oqhathanisa umphumela wenkulumo ecacisiwe nohlu lwamaphethini asohlwini lwamabhulokhi ngokusekelwe ku-opharetha "wecala". Ngokungafani no-opharetha "wokushintsha" otholakala ku-C, Java, ne-JavaScript, izinkulumo ezisuselwe "ukufanisa" zinikeza okwengeziwe ukusebenza okubanzi. Kuyaphawulwa ukuthi ama-opharetha ahlongozwayo azothuthukisa ukufundeka kwekhodi, enze kube lula ukuqhathanisa izinto zePython nokulungisa amaphutha, futhi akhulise ukuthembeka kwekhodi ngenxa yokuthi kungenzeka ukunwetshwa. ukuhlola uhlobo olumile.

def http_iphutha(isimo):
isimo sokufanisa:
icala 400:
buyisela "Isicelo esibi"
icala 401|403|404:
buyisela "Akuvunyelwe"
icala 418:
buya "Ngiyitiye"
icala_:
buyisela "Okunye"

Isibonelo, ungakwazi ukukhipha izinto, ama-tuples, izinhlu, nokulandelana okungahleliwe ukuze ubophe okuguquguqukayo ngokusekelwe kumanani akhona. Kuvunyelwe ukuchaza izifanekiso ezibekwe esidlekeni, sebenzisa izimo ezengeziwe “uma” kusifanekiso, sebenzisa imaski (“[x, y, *rest]”), amamephu wokhiye/inani (ngokwesibonelo, {“bandwidth”: b, “latency ”: l} ukuze kukhishwe amanani "umkhawulokudonsa" kanye "nezinga lokulinda" nesichazamazwi), khipha izifanekiso ezingezansi (":=" opharetha), sebenzisa ama-constants esifanekiso. Emakilasini, kuyenzeka ukwenza ngendlela oyifisayo ukuziphatha okufanayo usebenzisa indlela ethi “__match__()”.

kusuka kuma-dataclass ukungenisa idatha

@dataclass
Iphuzu lekilasi:
x:ibe
y :ibe

def whereis(point):
iphuzu lokufanisa:
Iphuzu lecala(0, 0):
phrinta("Umsuka")
Iphuzu lecala(0, y):
phrinta(f"Y={y}")
Iphuzu lecala(x, 0):
phrinta(f"X={x}")
Iphuzu lecala():
phrinta ("Enye indawo")
icala_:
phrinta("Akulona iphuzu")

iphuzu lokufanisa:
icala Iphuzu(x, y) uma x == y:
phrinta(f"Y=X kokuthi {x}")
Iphuzu lecala(x, y):
phrinta(f"Hhayi ku-diagonal")

BOMVU, OKULUHLAZA, OKULUHLAZAYO = 0, 1, 2
fanisa umbala:
icala .RED:
phrinta ("Ngibona okubomvu!")
icala .GREEN:
phrinta("Utshani buluhlaza")
icala .BLU
E:
phrinta(“Ngizwa ubuhlungu :(“)

Isethi isilungiselelwe ukubuyekezwa amapheshana ngokuhlolwa ukuqaliswa ukucaciswa okuhlongozwayo, kodwa inguqulo yokugcina isalokhu kuxoxiwe... Ngokwesibonelo, inikelwe Esikhundleni senkulumo ethi "case _:" ngevelu emisiwe, sebenzisa igama elingukhiye "okunye:" noma "okuzenzakalelayo:", njengoba elithi "_" kwezinye izimo lisetshenziswa njengokuguquguquka kwesikhashana. Okunye okungabazekayo inhlangano yangaphakathi, esekelwe ekuhumusheni izinkulumo ezintsha ku-bytecode efanayo naleyo esetshenziselwa ukwakha okuthi “uma ... elif ... okunye”, okungeke kunikeze ukusebenza okufunayo lapho kucutshungulwa amasethi amakhulu kakhulu okuqhathanisa.

Source: opennet.ru

Engeza amazwana