跳至主要內容

类属性和类方法

刘春龙原创...大约 1 分钟Python教程文档

类属性

类属性是从属于“类对象”的属性,也称为“类变量”。由于,类属性从属于类对象,可以被所有实例对象共享。

类属性的定义方式:

class 类名:
   类变量名= 初始值

在类中或者类的外面,我们可以通过:类名.类变量名来读写

class Student:
    count = 0  # 类属性

    def __init__(self, name):
        self.name = name   # 实例属性

    def say_score(self):   # 实例方法
        Student.count += 1

s1 = Student("张三")
s1.say_score()
print(Student.count)  # 1

类方法

类方法,是从属于“类对象”的方法。类方法通过装饰器@classmethod来定义,格式如下:

@classmethod
def 类方法名(cls  [,形参列表]) :
    方法体

要点如下:

  1. @classmethod必须位于方法上面一行
  2. 第一个cls必须有;cls指的就是“类对象”本身
  3. 调用类方法格式:类名.类方法名(参数列表)。 参数列表中,不需要也不能给cls传值
  4. 类方法中访问实例属性和实例方法会导致错误
  5. 子类继承父类方法时,传入cls是子类对象,而非父类对象(⚠️ 讲完继承再说)
class Student:
    count = 0  # 类属性
    company = "JIAMEI"  # 类属性

    def __init__(self, name):
        self.name = name   # 实例属性

    def say_score(self):   # 实例方法
        Student.count += 1

    @classmethod
    def printCompany(cls):  # 类方法
        print(cls.company)


s1 = Student("张三")
s1.say_score()
Student.printCompany()
上次编辑于:
贡献者: 刘春龙
评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v2.15.7