এখানে বেশিরভাগ উত্তর বেশ পুরানো, এবং বিশেষত স্বীকৃত উত্তর, তাই এটি আপডেট করার মতো বলে মনে হচ্ছে।
প্রথমত, সরকারী পাইথন এফএকিউ এটি কভার করে এবং elif
সাধারণ কেসগুলির জন্য চেইন এবং dict
বৃহত্তর বা আরও জটিল মামলার জন্য সুপারিশ করে । এটি visit_
কিছু ক্ষেত্রে পদ্ধতিগুলির একটি সেট (অনেকগুলি সার্ভার ফ্রেমওয়ার্ক দ্বারা ব্যবহৃত একটি স্টাইল )ও প্রস্তাব করে:
def dispatch(self, value):
method_name = 'visit_' + str(value)
method = getattr(self, method_name)
method()
প্রায়শই জিজ্ঞাসিত প্রশ্নাগুলি পিইপি 275- এরও উল্লেখ করে , যা সি-স্টাইলে স্যুইচ স্টেটমেন্ট যুক্ত করার বিষয়ে সর্বসম্মত সিদ্ধান্ত গ্রহণের জন্য লেখা হয়েছিল। কিন্তু পিইপি আসলে পাইথন 3 এর কাছে পিছিয়ে যায় এবং এটি কেবল আলাদাভাবে প্রস্তাব হিসাবে পিইপি 3103 হিসাবে প্রত্যাখ্যান করা হয়েছিল । উত্তরটি অবশ্যই ছিল না, তবে কারণ বা ইতিহাসের বিষয়ে আগ্রহী হলে দুটি পিইপি-র অতিরিক্ত তথ্যের লিঙ্ক রয়েছে।
এক জিনিস যা একাধিকবার এসেছিল (এবং এটি পিআইপি 275 এ দেখা যাবে, যদিও এটি একটি আসল সুপারিশ হিসাবে কাটা হয়েছিল) এটি হ'ল আপনি যদি 4 টি কেস পরিচালনা করতে 8 লাইন কোড রেখে সত্যিই বিরক্ত হন তবে 6 টি বনাম vs আপনার সি বা বাশ লাইনে থাকা লাইনগুলি আপনি সর্বদা এটি লিখতে পারেন:
if x == 1: print('first')
elif x == 2: print('second')
elif x == 3: print('third')
else: print('did not place')
এটি পিইপি 8 দ্বারা ঠিক উত্সাহিত হয় না, তবে এটি পঠনযোগ্য এবং খুব ইউনিডিয়ম্যাটিক নয়।
পিইপি 3103 প্রত্যাখ্যান হওয়ার পরে এক দশকেরও বেশি সময় ধরে সি-স্টাইলের মামলার বিবৃতি বা গো-এর সামান্য শক্তিশালী সংস্করণটিকে মৃত হিসাবে বিবেচনা করা হয়েছে; যখনই কেউ এটিকে অজগর-ধারণা বা দেবদেবীতে নিয়ে আসে, তাদের পুরানো সিদ্ধান্তের দিকে উল্লেখ করা হয়।
যাইহোক, পুরো এমএল-স্টাইলের প্যাটার্ন ম্যাচিংয়ের ধারণাটি প্রতি কয়েক বছর পরে উত্থাপিত হয়, বিশেষত যেহেতু সুইফ্ট এবং মরিচা ভাষাগুলি এটি গ্রহণ করেছে। সমস্যাটি হ'ল বীজগণিত ডেটা ধরণের ছাড়াই প্যাটার্ন মেলানো থেকে বেশি ব্যবহার করা শক্ত। যদিও গিডো এই ধারণার প্রতি সহানুভূতিশীল ছিলেন, তবুও কেউই এমন প্রস্তাব নিয়ে আসেনি যা পাইথনের সাথে খুব ভাল ফিট করে। ( উদাহরণস্বরূপ আপনি আমার ২০১৪ স্ট্রোম্যান পড়তে পারেন )) এটি যোগ করতে পারে 7.7 এরdataclass
মধ্যে এবং সামান্য enum
ধরণের হ্যান্ডেল করার জন্য আরও শক্তিশালী করার জন্য বা কিছু ধরণের স্টেটমেন্ট-লোকাল বাইন্ডিংয়ের বিভিন্ন প্রস্তাবের (যেমন পিইপি 3150 এর মতো বিভিন্ন প্রস্তাবের সাথে) পরিবর্তিত হতে পারে , বা প্রস্তাবসমূহের সেট বর্তমানে অন-বিদেশে আলোচনা করা হচ্ছে)। তবে এখনও পর্যন্ত তা হয়নি।
পার্ল--স্টাইলের মিলের জন্য মাঝে মধ্যে প্রস্তাবনাও রয়েছে যা মূলত elif
রেগেক্স থেকে একক-প্রেরণে টাইপ-স্যুইচিং পর্যন্ত সমস্ত কিছুর একটি মিশ্র্যাশ ।