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

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

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

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

class my_class:
    @classmethod
    def function_name(cls, arguments):
        # फ़ंक्शन बॉडी
        return value

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

class my_class:
    @staticmethod
    def function_name(arguments):
        # फ़ंक्शन बॉडी
        return value

क्लासमेथड और स्टैटिकमेथड में क्या अंतर है?

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

स्टैटिक मेथड्स कुछ यूटिलिटी टास्क करने के लिए उपयोग किए जाते हैं, और क्लास मेथड्स फैक्ट्री मेथड्स के लिए उपयोग किए जाते हैं। फैक्ट्री मेथड्स विभिन्न उपयोग मामलों के लिए क्लास ऑब्जेक्ट्स लौटा सकते हैं।

उदाहरण कोड

from datetime import date as dt
class Employee:
    def __init__(self, name, age):
        self.name = name
        self.age = age
    @staticmethod
    def isAdult(age):
        if age > 18:
            return True
        else:
            return False
    @classmethod
    def emp_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. Python Tkinter में after विधि Python Tkinter में after विधि

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

  1. - पायथन में classmethod()

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

  1. पायथन में इनहेरिटेंस (Inheritance) पायथन में इनहेरिटेंस (Inheritance)

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