#! /usr/bin/python3 # =================================================================== # Method Types in Python OOP # www.youytube.con/watch?v=PNp7cFJGsM # =================================================================== class MyClass: # ---- can modify object instance state # ---- can modify class state def method(self): return('instance method called, {}'.format(self)) # ---- Can't modify object instance state # ---- can modify class state @classmethod # decorator def classmethod(cls): return('class method called, {}'.format(cls)) # ---- can't modify object instance state # ---- Can't modify class state # ---- way to namespace methods @staticmethod # decorator def staticmethod(): return('static method called') if __name__ == '__main__': obj = MyClass() x = obj.method() print(x) x = obj.classmethod() print(x) x = obj.staticmethod() print(x) x = MyClass.classmethod() print(x) x = MyClass.staticmethod() print(x)