একটি প্যারামিটারলেস ব্যতিক্রম সংজ্ঞা:
class MyException(Exception):
pass
উত্থাপিত হলে, এর মধ্যে কোনও পার্থক্য রয়েছে:
raise MyException
এবং
raise MyException()
আমি কিছুই খুঁজে পেলাম না; এটি কি কেবল একটি ওভারলোডেড সিনট্যাক্স?
একটি প্যারামিটারলেস ব্যতিক্রম সংজ্ঞা:
class MyException(Exception):
pass
উত্থাপিত হলে, এর মধ্যে কোনও পার্থক্য রয়েছে:
raise MyException
এবং
raise MyException()
আমি কিছুই খুঁজে পেলাম না; এটি কি কেবল একটি ওভারলোডেড সিনট্যাক্স?
উত্তর:
সংক্ষিপ্ত উত্তরটি হ'ল উভয় raise MyException
এবং raise MyException()
একই জিনিস। এই প্রথম ফর্মটি স্বয়ংক্রিয়ভাবে আপনার ব্যতিক্রমকে তাত্ক্ষণিক করে তোলে।
ডক্স থেকে প্রাসঙ্গিক অধ্যায় বলে, " বাড়াতে ব্যতিক্রম অবজেক্ট হিসেবে প্রথম অভিব্যক্তি মূল্যায়ন করে। এটি হয় একটি উপশ্রেণী বা BaseException একটি দৃষ্টান্ত হতে হবে। যদি একটি বর্গ হয়, ব্যতিক্রম দৃষ্টান্ত যখন সঙ্গে বর্গ শুরু করতে গিয়ে প্রয়োজনীয় প্রাপ্ত করা হবে কোন যুক্তি নেই। "
এটি বলেছিল, যদিও শব্দার্থকগুলি একই, প্রথম রূপটি মাইক্রোস্কোপিকভাবে দ্রুত, এবং দ্বিতীয় রূপটি আরও নমনীয় (কারণ আপনি প্রয়োজনে এটি যুক্তিগুলি পাস করতে পারেন)।
raise MyException
যখন আর্গুমেন্ট না থাকে তখন বেশিরভাগ লোক পাইথনে সাধারণত স্টাইলটি ব্যবহার করে (যেমন স্ট্যান্ডার্ড লাইব্রেরিতে, জনপ্রিয় অ্যাপ্লিকেশনগুলিতে এবং অনেক বইয়ে) use লোকেরা কেবল তখনই ব্যতিক্রমটি তাত্ক্ষণিকভাবে গ্রহণ করে যখন কিছু যুক্তি পাস করার প্রয়োজন হয়। উদাহরণস্বরূপ: raise KeyError(badkey)
।
বিবৃতিটির জন্য দস্তাবেজগুলিraise
দেখুন । এটি একটি উদাহরণ তৈরি করছে MyException
।
raise
পাইথন 3-এর জন্য সিনট্যাক্সটি কিছুটা পরিবর্তিত হয়েছে this এই প্রশ্নের সাথে প্রাসঙ্গিক অংশটি যদিও একই ( raise ExceptionType
এখনও কোনও বিন্যাস ছাড়াই এর নির্মাণকারীকে কল করে টাইপের একটি উদাহরণ তৈরি করে)।
হ্যাঁ, ValueError
এবং এর মধ্যে পার্থক্য রয়েছেValueError()
ValueError
এমন একটি শ্রেণি যেখানে শ্রেণীর ValueError()
উদাহরণ তৈরি হয়। এই কারণ type(ValueError) is type
এবংtype(ValueError()) is ValueError
এর একমাত্র উদ্দেশ্য raise
ব্যতিক্রম উত্থাপন,
যখন আমরা ব্যবহার করব
ValueError
, তখন ক্লাস বলা হবে যা পরিবর্তকটি চালককে চালায়ValueError()
যখন আমরা ব্যবহার করি
ValueError()
, তখন পদ্ধতিটিValueError()
সরাসরি বলা হয়।
বিঃদ্রঃ: raise ValueError # shorthand for 'raise ValueError()'