প্রকৃত আচরণের বিষয়ে, কোনও পার্থক্য নেই। তারা সবাই ফিরে আসে None
এবং এটাই। তবে এই সমস্তগুলির জন্য একটি সময় এবং জায়গা রয়েছে place নিম্নলিখিত নির্দেশাবলীটি মূলত বিভিন্ন পদ্ধতি কীভাবে ব্যবহার করা উচিত (বা কমপক্ষে কীভাবে আমাকে তাদের ব্যবহার করা উচিত তা শেখানো হয়েছিল) তবে সেগুলি নিখুঁত নিয়ম নয় তাই আপনি যদি প্রয়োজন বোধ করেন তবে সেগুলি মেশাতে পারেন।
ব্যবহার return None
এটি বলে যে ফাংশনটি প্রকৃতপক্ষে পরবর্তী ব্যবহারের জন্য কোনও মান ফেরত বোঝাতে হয় এবং এই ক্ষেত্রে এটি ফিরে আসে None
। এই মানটি None
অন্য কোথাও ব্যবহার করা যেতে পারে। return None
ফাংশন থেকে অন্য কোনও সম্ভাব্য রিটার্ন মান না থাকলে কখনই ব্যবহার করা হয় না।
নিম্নলিখিত উদাহরণে, person
প্রদত্তটি mother
যদি person
কোনও মানুষ হয় তবে আমরা ফিরে আসি। যদি এটি কোনও মানুষ না হয় তবে আমরা ফিরে None
আসি যেহেতু এর person
একটি নেই mother
(আসুন ধরা যাক এটি কোনও প্রাণী বা কিছু নয়)।
def get_mother(person):
if is_human(person):
return person.mother
else:
return None
ব্যবহার return
এটি break
লুপগুলির মতো একই কারণে ব্যবহৃত হয়। রিটার্ন মানটি কোনও ব্যাপার নয় এবং আপনি কেবল পুরো ফাংশন থেকে প্রস্থান করতে চান। আপনার এটির প্রায়শই প্রয়োজন হয় না সত্ত্বেও এটি কিছু জায়গায় এটি অত্যন্ত কার্যকর।
আমরা 15 পেয়েছি prisoners
এবং আমরা জানি যে তাদের একটির কাছে ছুরি রয়েছে। আমরা তাদের প্রত্যেকের কাছ prisoner
থেকে ছুরি আছে কিনা তা পরীক্ষা করে লুপ করি । যদি আমরা সেই ব্যক্তিকে একটি ছুরি দিয়ে আঘাত করি তবে আমরা কেবলমাত্র ফাংশনটি থেকে বেরিয়ে যেতে পারি কারণ আমরা জানি যে কেবল একটি ছুরি আছে এবং চেক বাকী কোনও কারণ নেই prisoners
। যদি আমরা prisoner
একটি ছুরি সহ এটি না পাই তবে আমরা একটি সতর্কতা বাড়িয়ে তুলি। এটি বিভিন্ন উপায়ে করা যেতে পারে এবং ব্যবহার return
করা সম্ভবত সর্বোত্তম উপায় নয়, তবে return
কোনও ফাংশন থেকে বেরিয়ে আসার জন্য কীভাবে ব্যবহার করতে হয় তা প্রদর্শন করার জন্য এটি কেবল উদাহরণ ।
def find_prisoner_with_knife(prisoners):
for prisoner in prisoners:
if "knife" in prisoner.items:
prisoner.move_to_inquisition()
return # no need to check rest of the prisoners nor raise an alert
raise_alert()
দ্রষ্টব্য: আপনার কখনই করা উচিত নয় var = find_prisoner_with_knife()
, যেহেতু ফেরতের মান ধরা হয় না।
কোন ব্যবহার return
এ সব
এটিও ফিরে আসবে None
, তবে সেই মানটি ব্যবহার বা ধরা বোঝাতে নয়। এর সহজ অর্থ হল যে ফাংশনটি সফলভাবে শেষ হয়েছে। এটি মূলত হিসাবে একই return
মধ্যে void
যেমন সি ++ বা জাভা যেমন ভাষায় ফাংশন।
নিম্নলিখিত উদাহরণে, আমরা ব্যক্তির মায়ের নাম সেট করি এবং তারপরে সফলতার সাথে সমাপ্তির পরে ফাংশনটি বের হয়।
def set_mother(person, mother):
if is_human(person):
person.mother = mother
দ্রষ্টব্য: আপনার কখনই করা উচিত নয় var = set_mother(my_person, my_mother)
, যেহেতু ফেরতের মান ধরা হয় না।
return None
আমার কাছে ইঙ্গিত দেয় যে ফাংশনটির মাঝে মাঝে একটিNone
ফেরত না দেওয়া মান থাকে, তবে এর অবস্থানটিতে এইreturn None
জাতীয় রিটার্নের মান নেই। না লিখতে মোটেওreturn
বোঝা যায় না যে "ফাংশন" এর বিপরীতে কোনও "পদ্ধতি" এর মতো আকর্ষণীয় রিটার্ন মান কখনও হয় না।return
পূর্ববর্তী পয়েন্ট অনুসারে একটি "পদ্ধতি" থেকে প্রাথমিকভাবে উপস্থিত হওয়া বোঝায়।