美文网首页
python中self 和cls区别

python中self 和cls区别

作者: 土豆特别想爬山 | 来源:发表于2020-05-21 18:38 被阅读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

    相关文章

      网友评论

          本文标题:python中self 和cls区别

          本文链接:https://www.haomeiwen.com/subject/giptahtx.html