Python Class ใดๆ มี Method สามประเภท ได้แก่ Instance Methods, Class Methods และ Static Methods
ตัวอย่าง
พิจารณาโค้ด
class OurClass:
def method(self):
return 'instance method called', self
@classmethod
def classmethod(cls):
return 'class method called', cls
@staticmethod
def staticmethod():
return 'static method called'
Method ที่สาม OurClass.staticmethod ถูกตกแต่งด้วย @staticmethod Decorator เพื่อ Flag ว่าเป็น Static Method
ประเภท Method นี้ไม่รับ self และไม่รับ cls Parameter แต่สามารถรับ Arbitrary Number ของ Parameters อื่นๆ ได้
ดังนั้น Static Method ไม่สามารถ Modify Object State และ Class State ได้ Static Methods ถูกจำกัดใน Data ที่เข้าถึงได้ - และพวกเขาเป็น primarily a way to Namespace Methods ของคุณ เราสามารถเรียก Staticmethod จากโค้ดข้างต้นได้ดังนี้
>> obj = OurClass()
>>> obj.staticmethod()
'static method called'