वास्तविक व्यवहार पर, कोई अंतर नहीं है। वे सभी वापस आ गए Noneऔर यह बात है। हालांकि, इन सभी के लिए एक समय और स्थान है। निम्नलिखित निर्देश मूल रूप से हैं कि विभिन्न तरीकों का उपयोग कैसे किया जाना चाहिए (या कम से कम मुझे कैसे सिखाया जाता था कि उनका उपयोग किया जाना चाहिए), लेकिन वे पूर्ण नियम नहीं हैं, इसलिए यदि आप आवश्यक महसूस करते हैं तो आप उन्हें मिला सकते हैं।
का उपयोग करते हुए return None
यह बताता है कि फ़ंक्शन वास्तव में बाद में उपयोग के लिए एक मूल्य वापस करने के लिए है, और इस मामले में यह वापस आ जाता है None। यह मान Noneतब कहीं और उपयोग किया जा सकता है। return Noneयदि फ़ंक्शन से कोई अन्य संभावित वापसी मान नहीं हैं, तो इसका उपयोग कभी नहीं किया जाता है।
निम्न उदाहरण में, हम वापसी person's 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तात्पर्य पिछले बिंदु के अनुसार एक "प्रक्रिया" से पहले से मौजूद है।