首页 > 代码库 > 类方法

类方法

类方法与普通的成员函数和静态函数有不同之处,在接触的语言中好像也没见过这种语义,看它的定义: 
一个类方法就可以通过类或它的实例来调用的方法, 不管你是用类来调用这个方法还是类实例调用这个方法,该方法的第一个参数总是定义该方法的类对象。 
记住:方法的第一个参数都是类对象而不是实例对象. 
按照惯例,类方法的第一个形参被命名为 cls.任何时候定义类方法都不是必须的(类方法能实现的功能都可以通过定义一个普通函数来实现,只要这个函数接受一个类对象做为参数就可以了).

# 规范:自己的成员自己去访问,除了类中的方法,类中的方法用对象去访问
# 通过类去访问的有:类属性,静态方法,类方法
# 通过对象去访问的有: 对象属性,类中的方法
# 静态方法存在的意义在于不需要创建对象就可以执行该方法
# 类方法相当于一个特出的静态方法(有参数)


class A(object):

    @classmethod
    def run(cls):
        print(run,cls)
# 类方法通过类直接调用,类方法中的cls参数自动传递,传递类对象
A.run()

 

类方法