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

Python में मेथड और फ़ंक्शन के बीच अंतर


फ़ंक्शन

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

बुनियादी फ़ंक्शन सिंटैक्स

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

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

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

आउटपुट

>>> sum(5,6)
11

तो उपरोक्त से, हम 'return' स्टेटमेंट को Python फ़ंक्शन से मान वापस करते हुए देखते हैं।

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

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

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

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

मेथड

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

  • मेथड को उस ऑब्जेक्ट के लिए निहित रूप से उपयोग किया जाता है जिसके लिए इसे बुलाया जाता है।

  • मेथड क्लास के भीतर मौजूद डेटा तक पहुंच योग्य होता है।

सामान्य मेथड सिंटैक्स

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

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

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

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

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

  • मेथड के विपरीत जो ऑब्जेक्ट की स्थिति को बदल सकता है, Python फ़ंक्शन ऐसा नहीं करता है और आमतौर पर इस पर ऑपरेट करता है।

संक्षेप में, एक मेथड एक फ़ंक्शन है जो किसी ऑब्जेक्ट से संबंधित है।


  1. - Python में getattr() और setattr() फंक्शन्स में क्या अंतर है?

    getattr() मेथड getattr() मेथड ऑब्जेक्ट के नामित एट्रिब्यूट का मान लौटाता है। यदि नहीं मिला, तो यह फंक्शन को प्रदान किया गया डिफ़ॉल्ट मान लौटाता है। सिंटैक्स getattr() मेथड का सिंटैक्स है: getattr(object, name[, default]) getattr() मेथड मल्टीपल पैरामीटर्स ले सकता है: getattr() मेथड लौटाता है: दिए गए

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

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

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

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