Guido van Rossum
නව ක්රියාත්මක කිරීම Scala, Rust, සහ F# හි සපයා ඇති "මැච්" ක්රියාකරුට සමාන වන අතර, එය නිශ්චිත ප්රකාශනයක ප්රතිඵලය "නඩු" ක්රියාකරු මත පදනම්ව කුට්ටිවල ලැයිස්තුගත කර ඇති රටා ලැයිස්තුවක් සමඟ සංසන්දනය කරයි. C, Java සහ JavaScript හි ඇති "ස්විච්" ක්රියාකරු මෙන් නොව, "ගැලපීම" මත පදනම් වූ ප්රකාශන බොහෝ දේ ලබා දෙයි
def http_error(තත්ත්වය):
ගැලපෙන තත්ත්වය:
නඩුව 400:
ආපසු "නරක ඉල්ලීම"
නඩුව 401|403|404:
ආපසු "අවසර නැත"
නඩුව 418:
ආපසු "මම තේ පෝච්චියක්"
නඩුව_:
"වෙනත් දෙයක්" ආපසු යන්න
උදාහරණයක් ලෙස, පවතින අගයන් මත පදනම්ව විචල්ය බැඳීමට ඔබට වස්තු, ටියුපල්, ලැයිස්තු සහ අත්තනෝමතික අනුපිළිවෙලවල් ඉවත් කළ හැකිය. එය කැදැලි සැකිලි නිර්වචනය කිරීමට, අච්චුවේ අමතර "if" කොන්දේසි භාවිතා කිරීමට, වෙස් මුහුණු භාවිතා කිරීමට ("[x, y, *rest]"), යතුරු/අගය සිතියම්ගත කිරීම් (උදාහරණයක් ලෙස, {"bandwidth": b, "latency ”: l} "කලාප පළල" සහ "ප්රමාද" අගයන් සහ ශබ්ද කෝෂය උපුටා ගැනීමට), උප සැකිලි උපුටා ගැනීම (":=" ක්රියාකරු), සැකිල්ලේ නම් කරන ලද නියතයන් භාවිතා කරන්න. පන්ති වලදී, “__match__()” ක්රමය භාවිතයෙන් ගැළපෙන හැසිරීම අභිරුචිකරණය කළ හැකිය.
dataclasses වලින් dataclass ආනයනය කරන්න
@dataclass
පන්ති ලක්ෂ්යය:
x:int
y:int
def whereis(point):
ගැලපුම් ලක්ෂ්යය:
සිද්ධි ලක්ෂ්යය(0, 0):
මුද්රණය ("සම්භවය")
සිද්ධි ලක්ෂ්යය(0, y):
මුද්රණය (f"Y={y}")
කේස් පොයින්ට්(x, 0):
මුද්රණය (f"X={x}")
කේස් පොයින්ට් ():
මුද්රණය ("වෙනත් තැනක")
නඩුව_:
මුද්රණය ("ලක්ෂ්යයක් නොවේ")
ගැලපුම් ලක්ෂ්යය:
කේස් පොයින්ට්(x, y) නම් x == y:
මුද්රණය (f"Y=X දී {x}")
කේස් පොයින්ට්(x, y):
මුද්රණය (f"විකර්ණය මත නොවේ")
රතු, කොළ, නිල් = 0, 1, 2
ගැලපෙන වර්ණය:
නඩුව .RED:
මුද්රණය ("මට රතු පාටයි!")
නඩුව .GREEN:
මුද්රණය ("තණකොළ කොළ")
නඩුව .BLU
E:
මුද්රණය (“මට බ්ලූස් දැනෙනවා :(“)
සමාලෝචනය සඳහා කට්ටලයක් සකස් කර ඇත
මූලාශ්රය: opennet.ru