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

पायथन फ़ंक्शंस और पायथन ऑब्जेक्ट-मेथड्स के बीच कौन अधिक मौलिक है?

एक फ़ंक्शन पायथन में एक कॉल करने योग्य वस्तु है, यानी कॉल ऑपरेटर का उपयोग करके कॉल किया जा सकता है। हालाँकि अन्य ऑब्जेक्ट भी __call__method को लागू करके किसी फ़ंक्शन का अनुकरण कर सकते हैं।

उदाहरण

def a(): pass # a() is an example of function
print a
print type(a)

आउटपुट

C:/Users/TutorialsPoint/~.py
<function a at 0x0000000005765C18>
<type 'function'>

एक विधि फ़ंक्शन का एक विशेष वर्ग है, जिसे बाउंड या अनबाउंड किया जा सकता है।

उदाहरण

class C:
      def c(self): pass
print C.c   # example of unbound method
print type(C.c)
print C().c  # example of bound method
print type(C().c)
print C.c()

बेशक, एक अनबाउंड विधि को तर्क के रूप में पारित किए बिना नहीं कहा जा सकता है।

आउटपुट

<function a at 0xb741b5a4>
<type 'function'>
<unbound method C.c>
<type 'instancemethod'>
<bound method C.c of <__main__.C instance at 0xb71ade0c>>
<type 'instancemethod'>
Traceback (most recent call last):
  File "~.py", line 11, in <module>
    print C.c()
TypeError: unbound method c() must be called with C instance as first argument (got nothing instead)

पायथन में, बाउंड मेथड, फंक्शन या कॉल करने योग्य ऑब्जेक्ट (जो कि एक ऑब्जेक्ट है जो __call__ मेथड को लागू करता है), या क्लास कंस्ट्रक्टर के बीच बहुत अंतर नहीं है। वे सभी एक जैसे दिखते हैं, उनके पास बस अलग-अलग नामकरण परंपराएं हैं और हुड के नीचे बहुत अलग दिख सकती हैं।

इसका मतलब है कि एक बाध्य विधि को एक समारोह के रूप में इस्तेमाल किया जा सकता है, यह कई छोटी चीजों में से एक है जो पायथन को इतना शक्तिशाली बनाता है

>>> d = A().a #this is a bound method of A()
>>> d() # this is a function

इसका मतलब यह भी है कि भले ही len(...) और str(...) (str एक प्रकार का कंस्ट्रक्टर है) के बीच एक मूलभूत अंतर है, हम तब तक अंतर नहीं देखेंगे जब तक हम थोड़ा और गहराई में नहीं जाते:

>>>len
<built-in function len>
>>> str
<type 'str'>

  1. पायथन लैम्ब्डा फ़ंक्शंस:एक परिचय

    पायथन लैम्ब्डा फ़ंक्शन सिंगल लाइन, अनाम फ़ंक्शन हैं। पायथन में लैम्ब्डा एक्सप्रेशन सिंगल लाइन फ़ंक्शंस के लिए उपयोगी होते हैं जिन्हें किसी नाम की आवश्यकता नहीं होती है, जैसे फ़िल्टरिंग सूचियां, स्ट्रिंग मामलों को परिवर्तित करना, या किसी संख्या को गुणा करना। जब आप एक ऐसा प्रोग्राम लिख रहे हैं जो

  1. जावास्क्रिप्ट में कार्यों और विधियों में क्या अंतर है?

    जावास्क्रिप्ट में कार्य और विधियाँ समान हैं, लेकिन विधि एक फ़ंक्शन है, जो किसी वस्तु का गुण है। जावास्क्रिप्ट में फ़ंक्शन का एक उदाहरण निम्नलिखित है - function functionname(param1, param2){    // code } उदाहरण विधि किसी ऑब्जेक्ट से संबद्ध एक फ़ंक्शन है। जावास्क्रिप्ट में एक विधि का उदाहरण

  1. एक पायथन फ़ंक्शन एक फ़ंक्शन कैसे लौटा सकता है?

    पायथन प्रथम श्रेणी के कार्यों का समर्थन करता है। वास्तव में, पायथन में सभी कार्य प्रथम श्रेणी के कार्य हैं। पायथन फ़ंक्शन से फ़ंक्शन वापस कर सकता है, कार्यों को सूचियों जैसे संग्रह में संग्रहीत कर सकता है और आम तौर पर उनके साथ वैसा ही व्यवहार कर सकता है जैसा आप किसी भी चर या वस्तु के साथ करते हैं।