किसी भी पायथन क्लास में तीन प्रकार के मेथड्स होते हैं: इंस्टेंस मेथड्स, क्लास मेथड्स और स्टेटिक मेथड्स।
उदाहरण
निम्न कोड पर विचार करें:
class OurClass:\n def method(self):\n return 'instance method called', self\n @classmethod\n def classmethod(cls):\n return 'class method called', cls\n @staticmethod\n def staticmethod():\n return 'static method called'
तीसरा मेथड, OurClass.staticmethod को @staticmethod डेकोरेटर के साथ चिह्नित किया गया है ताकि इसे स्टेटिक मेथड के रूप में फ्लैग किया जा सके।
इस प्रकार का मेथड न तो self और न ही cls पैरामीटर लेता है लेकिन यह अन्य पैरामीटर्स की मनमानी संख्या स्वीकार कर सकता है।
इसलिए एक स्टेटिक मेथड न तो ऑब्जेक्ट स्टेट और न ही क्लास स्टेट को संशोधित कर सकता है। स्टेटिक मेथड इस बात में प्रतिबंधित हैं कि वे किस डेटा तक पहुंच सकते हैं - और वे मुख्य रूप से अपने मेथड्स को नेमस्पेस करने का एक तरीका हैं। हम उपरोक्त कोड से staticmethod को निम्नानुसार कॉल कर सकते हैं:
>>> obj = OurClass()\n>>> obj.staticmethod()\n'static method called'