zoukankan      html  css  js  c++  java
  • 08 类属性、类方法、静态方法

    1 类属性

    1.1 类属性的定义

    类属性即定义在类中的属性。类是一个特殊的对象。定义方法为:在类中使用直接使用赋值语句定义:

    1.2 类属性的调用

    使用 类名.类属性名 的方式调用它,可以在任意地方使用此方法调用一个类的类属性。

    1.3 子类调用父类中的类属性

    子类实例可以直接调用父类中的类属性:子类实例.父类属性

    也可以使用:类名.类属性(或cls.类属性(cls表示class,self表示对象))的方式,在任意地方调用任意类的类属性

    class Human:
        count = 0  # 类属性的定义
        def __init__(self,name):
            self.name = name
            Human.count+=1  # 类属性的调用
    
    
    xiaoming = Human("小明")
    xiaohua = Human("小花")
    print("创建了%d个对象"% xiaoming.count) # 子类实例调用父类属性
    

      

    2 类方法

    2.1 类方法的定义

    类方法用:@classmethod来标记,此标记下的第一个方法即类方法

    2.2 类方法的调用

    类方法使用:类名.类方法名 来调用

    class Human:
        count = 0
        def __init__(self,name):
            self.name = name
            Human.count+=1
        @classmethod # 类方法的定义
        def show_count(cls):
            print("创建了%d个实例"%cls.count)
    
    xiaoming = Human("小明")
    xiaohua = Human("小花")
    Human.show_count() #类方法的调用
    

      

    3 静态方法

    3.1 静态方法的概念

    在类中,如果一个方法:既不调用实例属性和实例方法,也不需要调用类属性和类方法。就可以考虑把这个方法定义为静态方法。

    3.2 静态方法的定义

    使用:@staticmethod 来声明下面的第一个方法为静态方法。

    class Dog:
        @staticmethod
        def bark():
            print("汪汪汪")
    

      值得注意的是:静态方法的括号中没有参数,因为它不需要调用任何东西。

  • 相关阅读:
    mysql select 练习题
    mysql常用函数
    创建后表的修改:添加列+修改列+删除列+重命名表+删除整张表+删除整个数据库
    数据库里any 和 all 的区别
    mysql 高级查询
    9.12/ css3拓展、js基础语法、程序基本知识、数据类型、运算符表达方式、语句知识点
    9.11知识大纲【列表拓展】【格式与布局】
    9.10
    9.9
    9.8
  • 原文地址:https://www.cnblogs.com/Scorpicat/p/11720283.html
Copyright © 2011-2022 走看看