ጊዶ ቫን Rossum ስርዓተ-ጥለት ተዛማጅ ኦፕሬተሮችን ወደ Python ለመጨመር ሐሳብ አቀረበ

ጊዶ ቫን Rossum አስተዋውቋል ለማህበረሰብ ግምገማ ረቂቅ ዝርዝር መግለጫዎች በፓይዘን ውስጥ ስርዓተ-ጥለት ማዛመጃ ኦፕሬተሮችን (ተዛማጅ እና መያዣ) ለመተግበር። የስርዓተ-ጥለት ማዛመጃ ኦፕሬተሮችን ለመጨመር ሀሳቦች ቀድሞውኑ በ 2001 እና 2006 ታትመዋል (እ.ኤ.አ.)ፔፕ-0275, ፔፕ-3103), ነገር ግን "ከሆነ ... ኤሊፍ ... ሌላ" የተዛማጅ ሰንሰለቶችን ለመሰብሰብ የተገነባውን ግንባታ ለማመቻቸት ውድቅ ተደርገዋል.

አዲሱ አተገባበር በ Scala፣ Rust እና F# ውስጥ ከተሰጠው የ"ግጥሚያ" ኦፕሬተር ጋር ይመሳሰላል፣ ይህም የአንድ የተወሰነ አገላለጽ ውጤት በ"ኬዝ" ኦፕሬተር ላይ ተመስርተው በብሎኮች ውስጥ ከተዘረዘሩት የስርዓተ-ጥለት ዝርዝር ጋር ያነፃፅራል። በC፣ Java እና JavaScript ውስጥ ካለው የ"ስዊች" ኦፕሬተር በተለየ "ተዛማጅ" ላይ የተመሰረቱ አገላለጾች ብዙ ይሰጣሉ። ሰፊ ተግባራዊነት. የታቀዱት ኦፕሬተሮች የኮዱን ተነባቢነት እንደሚያሻሽሉ ፣ የዘፈቀደ የፓይዘን ዕቃዎችን እና ማረም ንፅፅርን ቀላል ያደርጉታል ፣ እንዲሁም የኮዱ አስተማማኝነት እንዲራዘም ስለሚያደርግ ምስጋና ይግባው ተብሏል። የማይንቀሳቀስ አይነት መፈተሽ.

def http_ስህተት(ሁኔታ)
ተዛማጅ ሁኔታ፡
ጉዳይ 400
"መጥፎ ጥያቄ" መመለስ
ጉዳይ 401|403|404፡
መመለስ "አልተፈቀደም"
ጉዳይ 418
ተመለስ "እኔ የሻይ ማንኪያ ነኝ"
ጉዳይ_:
"ሌላ ነገር" ተመለስ

ለምሳሌ በነባር እሴቶች ላይ ተመስርተው ተለዋዋጮችን ለማሰር ነገሮችን፣ tuples፣ ዝርዝሮችን እና የዘፈቀደ ቅደም ተከተሎችን መንቀል ይችላሉ። የተከማቸ አብነቶችን መግለፅ ተፈቅዶለታል፣ በአብነት ውስጥ ተጨማሪ “ከሆነ” ሁኔታዎችን መጠቀም፣ ጭንብል መጠቀም (“[x፣ y፣ * rest]”)፣ የቁልፍ/እሴት ካርታዎች (ለምሳሌ {“ባንድዊድዝ”፡ b፣ “latency ": l} የ"bandwidth" እና "latency" እሴቶችን እና መዝገበ ቃላት ለማውጣት)፣ ንዑስ አብነቶችን ለማውጣት (":="ኦፕሬተር)፣ በአብነት ውስጥ የተሰየሙ ቋሚዎችን ይጠቀሙ። በክፍሎች ውስጥ የ"__ተዛማጅ__()" ዘዴን በመጠቀም የማዛመድ ባህሪን ማበጀት ይቻላል።

ከዳታ ክፍሎች የውሂብ ክፍል ያስመጡ

@ዳታ ክፍል
የክፍል ነጥብ፡-
x:int
y:int

የት (ነጥብ)
የግጥሚያ ነጥብ፡-
የጉዳይ ነጥብ(0፣ 0)
ማተም ("መነሻ")
የጉዳይ ነጥብ(0፣ y)፦
ማተም(f"Y={y}")
የጉዳይ ነጥብ (x, 0)
ማተም(f"X={x}")
የጉዳይ ነጥብ()
ማተም ("ሌላ ቦታ")
ጉዳይ_:
ማተም ("ነጥብ አይደለም")

የግጥሚያ ነጥብ፡-
የጉዳይ ነጥብ(x፣ y) x = y ከሆነ፡
አትም (f"Y=X በ {x}")
የጉዳይ ነጥብ(x፣ y)፦
ማተም (ረ "በዲያግናል ላይ አይደለም")

ቀይ ፣ አረንጓዴ ፣ ሰማያዊ = 0 ፣ 1 ፣ 2
ተዛማጅ ቀለም:
ጉዳይ .ቀይ፡
ማተም ("ቀይ አያለሁ!")
መያዣ .አረንጓዴ፡
ማተም ("ሣር አረንጓዴ ነው")
ጉዳይ .BLU
E:
ያትሙ ("ሰማያዊ ስሜት እየተሰማኝ ነው :(")

ለግምገማ የሚሆን ስብስብ ተዘጋጅቷል። ጥገናዎች ከሙከራ ጋር ትግበራ የታቀደ ዝርዝር መግለጫ, ግን የመጨረሻው ስሪት አሁንም ነው ተወያይተዋል።. ለምሳሌ አቅርቧል ለነባሪ እሴት "case _:" ከሚለው አገላለጽ ይልቅ "_" በሌሎች ሁኔታዎች እንደ ጊዜያዊ ተለዋዋጭ ስለሚውል "ሌላ:" ወይም "ነባሪ:" የሚለውን ቁልፍ ቃል ይጠቀሙ. “ከሆነ... elif ... ሌላ” ሲገነባ አዲስ አገላለጾችን ወደ ባይትኮድ በመተርጎም ላይ የተመሰረተው የውስጥ አደረጃጀትም አጠያያቂ ነው፣ ይህም በጣም ትልቅ የንፅፅር ስብስቦችን ሲያቀናጅ የሚፈለገውን አፈጻጸም አያቀርብም።

ምንጭ: opennet.ru

አስተያየት ያክሉ