美文网首页
30-python中定义类方法

30-python中定义类方法

作者: mingminy | 来源:发表于2017-12-22 12:26 被阅读0次

和属性类似,方法也分实例方法和类方法。

class中定义的全部是实例方法,实例方法第一个参数self是实例本身。

要在class中定义类方法,需要这么写:

class Person(object):    count = 0@classmethoddef how_many(cls):        return cls.count    def __init__(self, name):        self.name = name        Person.count = Person.count + 1print Person.how_many()p1 = Person('Bob')print Person.how_many()

通过标记一个@classmethod,该方法将绑定到Person类上,而非类的实例。类方法的第一个参数将传入类本身,通常将参数名命名为cls,上面的cls.count实际上相当于Person.count

因为是在类上调用,而非实例上调用,因此类方法无法获得任何实例变量,只能获得类的引用。

相关文章

  • 30-python中定义类方法

    和属性类似,方法也分实例方法和类方法。 在class中定义的全部是实例方法,实例方法第一个参数self是实例本身。...

  • swift面向对象特性——方法

    方法其实就是定义在类中的函数,在OC中,只可以在类中定义方法。而在Swift中,方法可以在类、结构体和枚举中定义,...

  • javascript中ES6的class写法

    在ES6中,javascript实现类定义、类继承及类中定义变量,构造方法,一般方法,静态方法 代码中均有注释

  • 枚举

    定义枚举类 可以在枚举中定义普通方法和抽象方法. 也同样可在枚举类中定义属性,构造方法. 实现原理 Java文件在...

  • swift方法

    oc中只有类可以定义方法,swift类/结构体/枚举都能定义方法 swift的类型方法类似oc的类方法 实例方法(...

  • 【Java】Java中Wait、Sleep和Yield方法的区别

    sleep()和yield()方法是定义在Thread类中,而wait()方法是定义在Object类中。 wait...

  • java内部类详解(Android常用)

    1,成员内部类:直接在类中定义的类 2、方法内部类:在一个类中的方法内定义一个类(1)方法内部类只能定义在改内部类...

  • 概念区分

    成员变量 & 局部变量 定义位置 成员变量:定义在类中方法外 局部变量,定义在在类的方法中,或者方法的形式参数中 ...

  • 单元测试junit

    定义一个类继承AndroidTestCase,在类中定义方法,即可测试该方法 在清单文件中需要指定指令集和定义使用...

  • Ruby元编程笔记 - 类中的魔法

    Ruby元编程笔记 - 类定义 类定义揭秘 在类定义中,self就是正在定义的类。 所有使用def定义的方法都成了...

网友评论

      本文标题:30-python中定义类方法

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