美文网首页
19-01-11类方法和静态方法

19-01-11类方法和静态方法

作者: one丨 | 来源:发表于2019-01-11 19:50 被阅读0次
1.对象方法:
  • a.怎么声明: 直接声明在类型
  • b.特点: 自带self参数,调用的时候不用传参,谁调用指向谁
  • c.怎么调用: 对象.方法()
2.类方法:
  • a.怎么声明: 声明函数前加@classmethod

  • b.特点: 自带默认参数cls; 调用的不用传参,系统会自动将调用当前函数的类传给它
    (cls是谁调用就指向谁, 类方法只能通过类来调用,所以cls就是当前类)
    类能做的事情,cls都能做

  • c.怎么调用: 通过类来调用, 类.方法()

3.静态方法
  • a.怎么声明:声明函数前加@staticmethod
  • b.特点: 没有默认参数
  • c.怎么调用:通过类来调用, 类.方法()
4.在类中怎么选择使用哪种方法:
  • a:如果实现类中的函数的功能需要使用对象的属性, 那么这个函数就要声明对象方法。
    b:实现函数的功能不需要对象属性的前提下,如果需要类的字段, 就声明称类方法
    c:实现函数的功能既不需要对象属性也不需要类的字段就声明成静态方法
class Person:
    num = 61

    def __init__(self):
        self.name = '张三'

    def func4(self):
        print('%s对应的对象' % self.name)
        # print('人类的数量:%d亿' % Person.num)

    @staticmethod
    def func3():
        print(Person.num)
        print('我是静态方法!')

    @classmethod
    def func2(cls):
        print(cls.num)
        print('我是类方法2')

    @classmethod
    def func1(cls):
        # 类能做的,cls都能做
        p1 = cls()    # 用cls来创建对象
        print(p1)

        cls.num = 100  # 用cls来使用类的字段

        cls.func2()   # 用cls调用类方法

        print('cls:', cls)
        print('这是一个类方法')


def main():
    print(Person)
    Person.func1()
    Person.func3()
    p1 = Person()
    p1.func4()


if __name__ == '__main__':
    main()
image.png

相关文章

  • 19-01-11类方法和静态方法

    1.对象方法: a.怎么声明: 直接声明在类型 b.特点: 自带self参数,调用的时候不用传参,谁调用指向谁 c...

  • python类的静态方法和类方法区别

    python类的静态方法和类方法区别 先看语法,python 类语法中有三种方法,实例方法,静态方法,类方法。 本...

  • 为什么从静态的方法里调用非静态的方法或变量是非法的?

    结论: 非静态的方法可以调用静态的方法,但是静态的方法不可以调用非静态的方法。 类的静态成员(变量和方法)属于类本...

  • ES6解读3:类class

    类的继承 类的getter和setter方法 静态方法以及静态属性 注意:静态方法只能是类调用,不能实例调用

  • Java自学-类和对象 类方法

    Java的类方法和对象方法 类方法: 又叫做静态方法 对象方法: 又叫实例方法,非静态方法 访问一个对象方法,必须...

  • JS常用的静态方法

    什么是静态方法和实例方法? 静态方法: 静态方法属于整个类所有,因此调用它不用实例化,可以直接调用------类....

  • iOS-类方法与实例方法

    搬运自 动态方法/实例方法 静态方法/类方法 静态方法和实例方法的区分 使用场景

  • 再论静态方法和类方法

    实例对象可以调用实例方法、类方法、静态方法 类对象只能调用类方法、静态方法

  • Java基础知识的小总结(2)

    静态方法 静态方法其实就是类方法,与类有关的,普通的方法在类被实例化后,被对象来调用,静态方法无法调用非静态方法,...

  • 2018-10-18类和对象总结

    1.类方法和静态方法 类中的方法: 对象方法, 类方法, 静态方法 对象方法:a、自带参数selfb、直接声明在类...

网友评论

      本文标题:19-01-11类方法和静态方法

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