যদিও অজগরটির সুইচ স্টেটমেন্ট না থাকলেও আপনি এগুলি অভিধান সহ অনুকরণ করতে পারেন। উদাহরণস্বরূপ, আপনি যদি এটির মতো স্যুইচ চান:
switch (a):
case 1:
runThisCode()
break
case 2:
runThisOtherCode()
break
case 3:
runThisOtherOtherCode()
break
আপনি if
বিবৃতি ব্যবহার করতে পারেন , বা আপনি এটি ব্যবহার করতে পারেন:
exec{1:"runThisCode()",2:"runThisOtherCode()",3:"runThisOtherOtherCode()"}[a]
অথবা এটা:
{1:runThisCode,2:runThisOtherCode,3:runThisOtherOtherCode}[a]()
যদি সমস্ত কোড পাথ একই পরামিতিগুলির সাথে ফাংশন হয় তবে এটি আরও ভাল।
একটি ডিফল্ট মান সমর্থন করার জন্য এটি করুন:
exec{1:"runThisCode()"}.get(a,"defaultCode()")
(অথবা এটা:)
{1:runThisCode}.get(a,defaultCode)()
এর আরেকটি সুবিধা হ'ল যদি আপনার অতিরিক্ত কাজগুলি হয় তবে অভিধান শেষ হওয়ার পরে আপনি এগুলি যুক্ত করতে পারেন:
exec{'key1':'code','key2':'code'}[key]+';codeThatWillAlwaysExecute'
এবং যদি আপনি কেবল একটি মান ফেরত দিতে একটি স্যুইচ ব্যবহার করতে চান:
def getValue(key):
if key=='blah':return 1
if key=='foo':return 2
if key=='bar':return 3
return 4
আপনি কেবল এটি করতে পারেন:
getValue=lambda key:{'blah':1,'foo':2,'bar',3}.get(key,4)