Guido van Rossum waxa uu soo jeediyay in lagu daro hawl wadeenada u dhigma qaabka Python

Guido van Rossum soo bandhigay qabyo ah dib u eegista bulshada faahfaahinta si loo hirgaliyo hawl wadeenada isbarbardhiga qaabka (kuwaadka iyo kiis) ee Python. Waa in la ogaadaa in soo jeedinta lagu daro hawl wadeenada u dhigma qaabka horeba loo daabacay 2001 iyo 2006 (Pep-0275, Pep-3103), laakiin waa la diiday iyaga oo door bidaaya hagaajinta "haddii ... elif ... kale" ee loogu talagalay ururinta silsiladaha isku midka ah.

Hirgelinta cusubi waxa ay la mid tahay hawl wadeenka "kulanka" ee lagu bixiyo Scala, Rust, iyo F#, kaas oo isbarbar dhigaya natiijada tibaaxaha la cayimay iyo liiska qaababka ku taxan baloogyada ku salaysan hawlwadeenka "kiiska". Si ka duwan hawl wadeenka "switch" ee laga heli karo C, Java, iyo JavaScript, tibaaxaha ku salaysan "ku-wadista" waxay bixiyaan wax ka badan shaqeyn ballaaran. Waxaa la xusay in hawl-wadeennada la soo jeediyay ay hagaajin doonaan akhrinta koodhka, fududayn doonaan isbarbardhigga walxaha Python iyo khaladka, iyo sidoo kale kordhinta kalsoonida koodhka sababtoo ah suurtagalnimada kordhinta hubinta nooca taagan.

def http_error(status):
heerka ciyaarta:
kiiska 400:
soo celi "codsi xun"
Kiiska 401|403|404:
soo celi "Lama ogola"
kiiska 418:
soo celi "waxaan ahay dheri shaaha"
kiis_:
soo celi "Wax kale"

Tusaale ahaan, waxaad kala soo bixi kartaa walxaha, tuples, liisaska, iyo taxanaha aan sabab lahayn si aad isugu xidho doorsoomayaasha ku salaysan qiyamka jira. Waa la oggol yahay in la qeexo qaab-dhismeedka buulka leh, adeegso shuruudo dheeraad ah “haddii” qaab-dhismeedka, adeegso waji-xidhka (“[x, y, *nasasho]”), khariidadaha furaha/qiimaha (tusaale, {“bandwidth”: b, “latency ": l} si loo soo saaro "bandwidth" iyo "latency" qiyamka iyo qaamuuska), soo saar qaab-hoosaadyo (":=" hawlwadeen), isticmaal joogto ah oo magac leh oo ku jira template. Fasalada dhexdeeda, waxaa suurtagal ah in hab-dhaqanka is-waafajinta lagu habeeyo iyadoo la adeegsanayo habka "__ match__()".

fasalada xogta soo dejinta dataclass

@dataclass
Barta fasalka:
x:int
y:int

meesha (dhibic):
barta ciyaarta:
Dhibicda (0, 0):
daabac ("Asal")
Kiis Point (0, y):
daabac (f"Y={y}")
Meesha Dhibcaha (x, 0):
daabac (f"X={x}")
Dhibicda ():
daabac ("meel kale")
kiis_:
daabac ("Maaha dhibic")

barta ciyaarta:
Meesha Point (x, y) haddii x == y:
daabac (f"Y=X at {x}")
Meesha Keyse (x, y):
daabac (f"kuma jiraan xagasha")

CAS, CAGAAR, buluug = 0, 1, 2
midabka ciyaarta:
kiis .CASAAN:
daabac ("Waxaan arkaa casaan!")
kiis .GREEN:
daabac ("Cawsku waa cagaar")
kiis .BLU
E:
daabac ("Waxaan dareemayaa buluug :(")

Qayb ayaa loo diyaariyey in dib loo eego balastar oo leh tijaabo hirgelinta qeexid la soo jeediyay, laakiin version ugu dambeeya waa weli kala hadlay. Tusaale ahaan, la bixiyo Halkii ereyga "kiis _:" ee qiimaha caadiga ah, isticmaal ereyga muhiimka ah "kale:" ama "default:", maadaama "_" xaaladaha kale loo isticmaalo doorsoome ku meel gaar ah. Waxa kale oo la is waydiinayaa waa ururka gudaha, kaas oo ku salaysan tarjumaadda tibaaxaha cusub ee bytecode oo la mid ah kuwa loo isticmaalo "haddii ... elif ... kale" waxay dhistaa, taas oo aan bixin doonin waxqabadka la doonayo marka la farsameeyo isbarbardhigga isbarbardhigga.

Source: opennet.ru

Add a comment