কম্পিউটার টিউটোরিয়াল

পাইথন টার্নারি অপারেটর ওভারলোড করা যায় কিনা

না, পাইথন টার্নারি অপারেটর (x if condition else y) ওভারলোড করা যায় না। এটি ল্যাঙ্গুয়েজ szintactic sugar, কোনো ম্যাজিক মেথড (__ternary__ এরকম কিছু নেই) দ্বারা কন্ট্রোল হয় না।

বিকল্প: ল্যাম্বডা বা ফাংশন র‍্যাপ করুন

# ল্যাম্বডা দিয়ে র‍্যাপ
result = lambda x: 1 if x < 3 else 10
print(result(2))    # 1
print(result(1000)) # 10

# ফাংশন দিয়ে
def ternary_wrapper(x):
    return 1 if x < 3 else 10

আউটপুট

1
10

নোট: আপনি কাস্টম ক্লাসে __bool__ বা __len__ ওভাররাইড করে ট্রুথিনেস (truthiness) কন্ট্রোল করতে পারেন, যা টার্নারি-এর কন্ডিশন পার্টে কাজ করবে।

  1. পাইথনে লিস্টের ওপর in অপারেটর কীভাবে কাজ করে?

  2. পাইথনে লিস্টের ওপর * (স্টার) অপারেটর কীভাবে কাজ করে?

  3. পাইথনে ফাংশন ওভারলোডিং করার পদ্ধতি

  4. রুবির টার্নারি অপারেটর মাস্টার করুন: কম্প্যাক্ট কন্ডিশনাল লজিকের কুইক গাইড