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

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

पायथन में क्लास मेथड एक मेथड है, जो क्लास से बंधी होती है लेकिन उस क्लास की ऑब्जेक्ट नहीं। स्थैतिक विधियां भी समान हैं लेकिन कुछ बुनियादी अंतर हैं। वर्ग विधियों के लिए, हमें @classmethod डेकोरेटर निर्दिष्ट करने की आवश्यकता है, और स्थिर विधि के लिए @staticmethod डेकोरेटर का उपयोग किया जाता है।

क्लास मेथड के लिए सिंटैक्स।

class my_class:
   @classmethod
  deffunction_name(cls, arguments):
      #Function Body
      return value

स्टेटिक विधि के लिए सिंटैक्स।

class my_class:
   @staticmethod
   deffunction_name(arguments):
      #Function Body
      return value

Classmethod और StaticMehtod में क्या अंतर हैं?

यहां
कक्षा पद्धति स्थिर विधि
वर्ग विधि cls (वर्ग) को प्रथम तर्क के रूप में लेती है। स्थिर विधि कोई विशिष्ट पैरामीटर नहीं लेती है।
क्लास मेथड क्लास की स्थिति को एक्सेस और संशोधित कर सकता है। स्टेटिक मेथड क्लास स्टेट को एक्सेस या संशोधित नहीं कर सकता है।
वर्ग विधि उस वर्ग की स्थिति के बारे में जानने के लिए कक्षा को पैरामीटर के रूप में लेती है। स्थिर विधियाँ वर्ग अवस्था के बारे में नहीं जानती हैं। कुछ पैरामीटर लेकर कुछ उपयोगिता कार्यों को करने के लिए इन विधियों का उपयोग किया जाता है।
@classmethod डेकोरेटर का उपयोग यहां किया गया है।@staticmethod डेकोरेटर का उपयोग किया जाता है।

कुछ उपयोगिता कार्यों को करने के लिए स्टेटिक विधियों का उपयोग किया जाता है, और फ़ैक्टरी विधियों के लिए वर्ग विधियों का उपयोग किया जाता है। फ़ैक्टरी विधियाँ विभिन्न उपयोग के मामलों के लिए वर्ग वस्तुओं को वापस कर सकती हैं।

उदाहरण कोड

from datetime import date as dt
class Employee:
   def __init__(self, name, age):
      self.name = name
      self.age = age
   @staticmethod
   defisAdult(age):
      if age > 18:
         return True
      else:
         return False
   @classmethod
   defemp_from_year(emp_class, name, year):
      return emp_class(name, dt.today().year - year)
   def __str__(self):
      return 'Employee Name: {} and Age: {}'.format(self.name, self.age)
e1 = Employee('Dhiman', 25)
print(e1)
e2 = Employee.emp_from_year('Subhas', 1987)
print(e2)
print(Employee.isAdult(25))
print(Employee.isAdult(16))

आउटपुट

Employee Name: Dhiman and Age: 25
Employee Name: Subhas and Age: 31
True
False

  1. पायथन टिंकर में विधि के बाद

    जीयूआई बनाने के लिए टिंकर एक पायथन पुस्तकालय है। इसमें डेटा और GUI ईवेंट दिखाने के लिए GUI विंडो और अन्य विजेट बनाने और हेरफेर करने के लिए कई अंतर्निहित तरीके हैं। इस लेख में हम देखेंगे कि टिंकर जीयूआई में बाद की विधि का उपयोग कैसे किया जाता है। सिंटैक्स .after(delay, FuncName=FuncName) This method

  1. पायथन में क्लासमेथोड ()

    एक वर्ग विधि वर्ग को अपने पहले तर्क के रूप में प्राप्त करती है। इस तरह हम क्लास से इंस्टेंस बनाए बिना क्लास के अंदर मेथड को कॉल कर सकते हैं। हम कक्षा में निहित विधि की घोषणा से पहले डेकोरेटर @classmethod का उपयोग करते हैं और फिर हम सीधे विधि तक पहुंच सकते हैं। क्लासमेथिड्स की मुख्य विशेषताएं नीचे दी

  1. पायथन में विरासत

    इस लेख में, हम पायथन 3.x में इनहेरिटेंस और एक्सटेंडिंग क्लासेस सीखेंगे। या पहले। वंशानुक्रम वास्तविक दुनिया के संबंधों का अच्छी तरह से प्रतिनिधित्व करता है, पुन:प्रयोज्य प्रदान करता है और पारगमन का समर्थन करता है। यह तेजी से विकास समय, आसान रखरखाव और विस्तार में आसान प्रदान करता है। वंशानुक्रम को