Guido van Rossum
نوی تطبیق د "میچ" آپریټر په څیر دی چې په Scala، Rust، او F# کې چمتو شوي، کوم چې د "کیس" آپریټر پراساس په بلاکونو کې د لیست شوي نمونو لیست سره د ټاکل شوي بیان پایلې پرتله کوي. د "سوئچ" آپریټر په خلاف چې په C، Java، او JavaScript کې شتون لري، د "میچ" پر بنسټ بیانات ډیر څه وړاندیز کوي
def http_error(status):
د میچ حالت:
قضیه 400:
بیرته راستنیدنه "خراب غوښتنه"
قضیه 401|403|404:
بیرته راستنیدنه "اجازه نه ده"
قضیه 418:
بیرته راشئ "زه د چای کڅوړه یم"
قضیه_:
بیرته "یو څه"
د مثال په توګه، تاسو کولی شئ د موجودو ارزښتونو پراساس متغیرات تړلو لپاره توکي، ټپلونه، لیستونه، او خپلمنځي ترتیبونه خلاص کړئ. دا اجازه لري چې د ځړول شوي ټیمپلیټونه تعریف کړي، په ټیمپلیټ کې اضافي "که" شرایط وکاروئ، ماسکونه وکاروئ ("[x، y، * آرام]")، د کلیدي/ ارزښت نقشه (د مثال په توګه، {"بینډ ویت": b، "تخریب ": l} د "بنډ ویت" او "لطابق" ارزښتونو او لغتونو ایستلو لپاره ، فرعي ټیمپلیټونه استخراج کړئ (": =" آپریټر) ، په ټیمپلیټ کې نومول شوي مستقلونه وکاروئ. په ټولګیو کې، دا ممکنه ده چې د "__match__()" میتود په کارولو سره د سمون چلند دودیز کړئ.
د ډیټا کلاسونو څخه ډیټا کلاس وارد کړئ
@dataclass
د ټولګي نقطه:
x:int
y:int
def چیرته دی (نښه):
د میچ نقطه:
د قضیې نقطه (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:
چاپ ("زه سور ګورم!")
قضیه .شین:
چاپ ("واښه شنه ده")
قضیه .BLU
E:
چاپ ("زه د بلوز احساس کوم :(")
یو سیټ د بیاکتنې لپاره چمتو شوی دی
سرچینه: opennet.ru