python中self 和cls区别

2020-05-21  本文已影响0人  土豆特别想爬山

类的方法有三种:

一、是通过def定义,需要至少传递一个参数,一般用self,这样的方法必须通过一个类的实例去访问;

二、是在def前面加上@classmethod,这种类方法的一个特点就是可以通过类名去调用,但是也必须传递一个参数,一般用cls表示class,表示可以通过类直接调用;

三、是在def前面加上@staticmethod,这种类方法是静态的类方法,参数可以为空,支持类名和对象两种调用方式;

举个例子:

class A(object):

    def fun1(self):

        pass

    @classmethod

    def fun2(cls):

        pass

    @staicmethod

    def fun3():

        pass

如果想调用fun1,只能创建一个对象,才能调用:

a = A()

a.fun1()

如果想调用fun2,直接A.fun2()就可以了;

如果想调用fun3,a.fun3()或者A.F

上一篇下一篇

猜你喜欢

热点阅读