Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Python

पायथन में विधि और कार्य के बीच अंतर

फ़ंक्शन

एक फ़ंक्शन किसी विशिष्ट कार्य को करने के लिए कोड का एक ब्लॉक होता है, जिसमें इसका अपना दायरा होता है और इसे नाम से बुलाया जाता है। सभी फ़ंक्शंस में शून्य (नहीं) तर्क या एक से अधिक तर्क हो सकते हैं। बाहर निकलने पर, कोई फ़ंक्शन एक या अधिक मान लौटा सकता है या नहीं।

बेसिक फंक्शन सिंटैक्स

def functionName( arg1, arg2,….):
   …….
   # Function_body
   ……..

आइए अपना खुद का (उपयोगकर्ता) बनाएं, एक बहुत ही सरल कार्य जिसे योग कहा जाता है (उपयोगकर्ता कोई भी नाम दे सकता है जो वह चाहता है) ”। फ़ंक्शन "योग" में दो तर्क होते हैं जिन्हें num1 और num2 कहा जाता है और फ़ंक्शन (योग) को दिए गए तर्कों का योग वापस कर देगा। जब हम मान (तर्क) 5 और 6 के साथ फ़ंक्शन (योग) को कॉल करते हैं, तो यह 11 लौटाता है।

def sum(num1, num2):
   return (num1 + num2)

आउटपुट

>>> sum(5,6)
11

तो ऊपर से, हम देखते हैं कि 'रिटर्न' स्टेटमेंट पायथन फ़ंक्शन से एक मान लौटाता है।

फ़ंक्शन हमें कोड पुन:प्रयोज्य को लागू करने की अनुमति देता है। कार्य तीन प्रकार के होते हैं -

  • अंतर्निहित कार्य (जैसा कि नाम से पता चलता है, ये फ़ंक्शन पायथन भाषा के साथ आते हैं, उदाहरण के लिए, मदद () किसी भी मदद के लिए पूछने के लिए, अधिकतम () - अधिकतम मूल्य प्राप्त करने के लिए, टाइप करें () - किसी वस्तु के प्रकार को वापस करने के लिए और भी बहुत कुछ।)

  • उपयोगकर्ता-परिभाषित फ़ंक्शन (ये वे फ़ंक्शन हैं जो उपयोगकर्ता उनकी सहायता के लिए बनाते हैं, जैसे "योग" फ़ंक्शन जो हमने ऊपर बनाया है)।

  • बेनामी फ़ंक्शन (जिसे लैम्ब्डा फ़ंक्शन भी कहा जाता है और सामान्य फ़ंक्शन के विपरीत जिसे def का उपयोग करके परिभाषित किया जाता है। कीवर्ड को लैम्ब्डा . का उपयोग करके परिभाषित किया गया है कीवर्ड)।

विधि

पायथन में एक विधि कुछ हद तक फ़ंक्शन के समान होती है, सिवाय इसके कि यह ऑब्जेक्ट/कक्षाओं से जुड़ी होती है। दो प्रमुख अंतरों को छोड़कर पायथन में विधियाँ बहुत समान हैं।

  • विधि का प्रयोग उस वस्तु के लिए किया जाता है जिसके लिए इसे कहा जाता है।

  • यह विधि उस डेटा तक पहुंच योग्य है जो कक्षा में निहित है।

सामान्य विधि सिंटैक्स

class ClassName:
   def method_name():
      …………..
      # Method_body
      ………………

आइए एक सरल कोड के माध्यम से विधि को समझते हैं -

class Pet(object):
   def my_method(self):
      print("I am a Cat")
cat = Pet()
cat.my_method()

आउटपुट

I am a Cat

उपरोक्त कोड में, हमने पहले वर्ग "पेट" को परिभाषित किया है। फिर हमने इस ब्लूप्रिंट से ऑब्जेक्ट "कैट" बनाया। इसके बाद, हम अपने कस्टम मेथड को my_method नाम से ऑब्जेक्ट (.i.e. cat) के साथ कॉल करते हैं।

पायथन में मेथड और फंक्शन के बीच मुख्य अंतर

जैसा कि हमें फ़ंक्शन और विधि दोनों की बुनियादी समझ मिलती है, आइए उनके बीच के प्रमुख अंतरों को उजागर करें -

  • किसी फ़ंक्शन के विपरीत, किसी ऑब्जेक्ट पर विधियों को कॉल किया जाता है। जैसा कि ऊपर हमारे उदाहरण में हम अपनी विधि कहते हैं। ऑब्जेक्ट "कैट" पर "my_method" जबकि फ़ंक्शन "योग" को बिना किसी ऑब्जेक्ट के कहा जाता है। साथ ही, क्योंकि किसी ऑब्जेक्ट पर विधि को कॉल किया जाता है, वह उस डेटा को उसके भीतर एक्सेस कर सकता है।

  • विधि के विपरीत जो वस्तु की स्थिति को बदल सकती है, पायथन फ़ंक्शन ऐसा नहीं करता है और सामान्य रूप से उस पर काम करता है।

संक्षेप में, एक विधि एक ऐसा कार्य है जो किसी वस्तु से संबंधित है।


  1. पायथन में getattr () और setattr () फ़ंक्शन में क्या अंतर है?

    गेटैटर () विधि getattr () विधि किसी वस्तु की नामित विशेषता का मान लौटाती है। यदि नहीं मिला, तो यह फ़ंक्शन को प्रदान किया गया डिफ़ॉल्ट मान लौटाता है। वाक्यविन्यास getattr() विधि का सिंटैक्स है - getattr(object, name[, default]) getattr() विधि कई पैरामीटर ले सकती है - getattr() मेथड रिटर्न - दिए

  1. '.' में क्या अंतर है , '?' और '*' पायथन रेगुलर एक्सप्रेशन में?

    विशेष वर्ण बिंदु . (डॉट।) डिफ़ॉल्ट मोड में, यह एक नई पंक्ति को छोड़कर किसी भी वर्ण से मेल खाता है। यदि DOTALL ध्वज निर्दिष्ट किया गया है, तो यह एक नई पंक्ति सहित किसी भी वर्ण से मेल खाता है। विशेष वर्ण ? परिणामी आरई को पिछले आरई के 0 या 1 दोहराव से मेल खाने का कारण बनता है। एबी? या तो ए या एबी स

  1. जावास्क्रिप्ट और पायथन में अर्धविराम के बीच क्या अंतर है?

    पायथन में अर्धविराम वैकल्पिक हैं। जावास्क्रिप्ट में, यह वैकल्पिक भी है, लेकिन इसे जोड़ना एक अच्छा अभ्यास है और कभी-कभी कुछ कथनों के मामले में यह एक आवश्यकता होती है। यदि इन कथनों में अर्धविराम नहीं डाला जाता है, तो एक स्वतः जुड़ जाता है, लेकिन यह कोड के उद्देश्य को बदल सकता है। इसे स्वचालित अर्धविरा