Python之类方法和静态方法

类方法

  • 类方法就是针对类对象定义的方法
    在类方法内部可以直接访问 类属性 或者调用其他的 类方法
  • 类方法要用 修饰器@classmethod来标识,告诉解释器这是一个类方法
  • 类方法第一个参数应该是cls
    1. 由哪一个类调用的方法,方法内的cls就是哪一个类的引用
    2. 这个参数和实例方法的第一个参数是 self类似
    3. 提示 使用其他名称也可以,不过习惯使用 cls
  • 通过 类名.调用类方法,调用方法时,不需要传递cls参数
  • 在方法内部
    1. 可以通过 cls. 访问类的属性
    2. 也可以通过 cls. 调用其他的类方法
class Tool(object):

    #使用赋值语句定义类属性,记录所有工具对象的数量
    count = 0

    @classmethod
    def show_tool_count(cls):
        print("工具数量的对象%s" % cls.count)  #cls.类属性   这是访问类属性

    def __init__(self,name):
        self.name = name
        #让类属性的值 +1
        Tool.count += 1

#创建工具对象
tool1 = Tool("斧头")
tool2 = Tool("榔头")

#调用类方法
Tool.show_tool_count()

#输出类属性
print(Tool.count)

#输出
工具数量的对象2
2

静态方法

既不需要访问实例属性也不需要访问类属性,既不需要访问类方法,也不需要访问实例方法,静态方法括号里灭有self

class Dog(object):
    @staticmethod
    def run():
        #不访问实例属性/类属性
        print("小狗跑")
#通过类名.调用静态方法--不需要创建对象
Dog.run()

#输出
小狗跑

总结

1 . 实例方法: 方法内部需要访问 实例属性
实例方法内部可以使用 类名. 访问类属性
2 . 类方法 : 方法内部只有类属性
3 . 静态方法 : 方法内部,不需要访问实例属性和类属性

你可能感兴趣的:(Python之类方法和静态方法)