七、面向对象_10.类方法和静态方法

类方法

需要使用装饰器 @classmethod 来标识其为类方法,第一个参数必须是类对象,一般以 cls 作为第一个参数
类方法使用场景:当方法中需要使用类对象(如访问私有类属性等)时,定义类方法
类方法一般配合类属性使用

class Team(object):
    __champion = 40

    @classmethod
    def get_champion(cls):
        return cls.__champion

M = Team()
res = M.get_champion()
print(res)

40

静态方法

需要使用装饰器 @staticmethod 来标识其为静态方法,静态方法不需要传递实例对象或类对象(形参没有self/cls)
静态方法可以通过实例对象或类对象调用
静态方法使用场景:当方法中既不需要使用实例对象(如实例属性、实例方法),也不需要使用类对象(如类属性、类方法)时
取消不必要的参数传递,减少不必要的内存占用

class Team(object):
    @staticmethod
    def work():
        print('this is staticmethod')

M = Team()
M.work()
Team.work()

this is staticmethod
this is staticmethod
上一篇:hive sql笔试题


下一篇:Redis高可用之哨兵模式