Guido van Rossum تجويز ڪيو ته شامل ڪرڻ جو نمونو ملندڙ آپريٽرز پائٿون ۾

گائيڊو وان روسم متعارف ڪرايو ڪميونٽي جي نظرثاني لاء مسودو وضاحتون Python ۾ نموني سان ملندڙ آپريٽرز (ميچ ۽ ڪيس) لاڳو ڪرڻ لاءِ. اهو ياد رکڻ گهرجي ته نموني سان ملندڙ آپريٽرز کي شامل ڪرڻ جي تجويز اڳ ۾ ئي 2001 ۽ 2006 ۾ شايع ٿي چڪي آهي (pep-0275, pep-3103)، پر ملندڙ زنجيرن کي گڏ ڪرڻ لاءِ ”if... elif... else“ تعمير کي بهتر ڪرڻ جي حق ۾ رد ڪيو ويو.

نئون عمل گهڻو ڪري "ميچ" آپريٽر وانگر آهي جيڪو Scala، Rust، ۽ F# ۾ مهيا ڪيو ويو آهي، جيڪو مخصوص اظهار جي نتيجن کي "ڪيس" آپريٽر جي بنياد تي بلاڪ ۾ ڏنل نمونن جي فهرست سان مقابلو ڪري ٿو. سي، جاوا ۽ جاوا اسڪرپٽ ۾ موجود ”سوئچ“ آپريٽر جي برعڪس، ”ميچ“ تي مبني اظهار گهڻو ڪجهه پيش ڪري ٿو. وسيع ڪارڪردگي. اهو نوٽ ڪيو ويو آهي ته تجويز ڪيل آپريٽرز ڪوڊ جي پڙهڻ جي صلاحيت کي بهتر بڻائي سگهندا، صوابديدي Python آبجڪس ۽ ڊيبگنگ جي مقابلي کي آسان بڻائي سگهندا، ۽ ڪوڊ جي اعتبار کي وڌائي سگهندا. جامد قسم جي چڪاس.

def http_error(status):
مطابقت جي حالت:
ڪيس 400:
واپسي "خراب درخواست"
ڪيس 401|403|404:
واپسي "اجازت ناهي"
ڪيس 418:
واپسي "مان هڪ چانهه آهيان"
ڪيس_:
واپسي "ٻيو ڪجهه"

مثال طور، توهان موجوده قدرن جي بنياد تي متغيرن کي پابند ڪرڻ لاءِ شيون، ٽوپلز، لسٽون، ۽ صوابديدي ترتيبون انپيڪ ڪري سگھو ٿا. ان کي اجازت ڏني وئي آھي nested ٽيمپليٽس جي وضاحت ڪرڻ، اضافي ”جيڪڏھن“ حالتون ٽيمپليٽ ۾ استعمال ڪريو، ماسڪ استعمال ڪريو (“[x, y, *rest]”)، ڪي/ويل ميپنگ (مثال طور، {“bandwidth”: b, “lateency ”: l} ڪڍڻ لاءِ ”بينڊوڊٿ“ ۽ ”لطابق“ ويلز ۽ ڊڪشنري) ڪڍڻ لاءِ، ذيلي ٽيمپليٽ (":=" آپريٽر)، ٽيمپليٽ ۾ نامزد مستقل استعمال ڪريو. ڪلاسن ۾، "__match__()" طريقو استعمال ڪندي ملندڙ رويي کي ترتيب ڏيڻ ممڪن آهي.

ڊيٽا ڪلاس مان ڊيٽا ڪلاس درآمد ڪريو

@dataclass
ڪلاس پوائنٽ:
x:int
y:int

def whereis (پوائنٽ):
ميچ پوائنٽ:
ڪيس پوائنٽ (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:
پرنٽ ("مان بلوز محسوس ڪري رهيو آهيان :(")

جائزو وٺڻ لاء هڪ سيٽ تيار ڪيو ويو آهي پيچ تجرباتي سان لاڳو ڪرڻ تجويز ڪيل وضاحت، پر آخري نسخو اڃا تائين آهي بحث ڪيو. مثال طور پيش ڪيل ڊفالٽ قدر لاءِ "ڪيس _:" جي اظهار جي بدران، لفظ "ٻيو:" يا "ڊفالٽ:" استعمال ڪريو، ڇاڪاڻ ته "_" ٻين مقصدن ۾ هڪ عارضي متغير طور استعمال ڪيو ويندو آهي. اهو پڻ قابل اعتراض آهي اندروني تنظيم، جيڪا نئين ايڪسپريسز کي بائيٽ ڪوڊ ۾ ترجمو ڪرڻ تي ٻڌل آهي جيئن ته "if ... elif ... else" تعميرات لاء استعمال ٿيل آهي، جيڪا گهربل ڪارڪردگي مهيا نه ڪندي جڏهن مقابلي جي تمام وڏي سيٽ کي پروسيس ڪندي.

جو ذريعو: opennet.ru

تبصرو شامل ڪريو