Python 中的类属性与实例属性
类属性是直接在类中定义的变量,由类的所有对象共享。
实例属性是附加到类的实例的属性。实例属性在构造函数中定义。
下表列出了类属性和实例属性之间的区别
类属性 | 实例属性 |
---|---|
直接在类中定义。 | 在构造函数中,使用 self 参数定义。 |
在所有对象之间共享。 | 特定于对象。 |
可以使用类名以及使用对象和点符号访问,例如 classname.class_attribute 或 object.class_attribute | 使用对象点符号访问,例如 object.instance_attribute |
使用 classname.class_attribute = value 更改值将反映到所有对象。 | 更改实例属性的值不会反映到其他对象。 |
以下示例演示了类属性 count
的使用。
示例:Student.py
class Student: count = 0 def __init__(self): Student.count += 1
在上面的示例中,count
是 Student 类中的一个属性。每当创建一个新对象时,count
的值就增加 1。现在,您可以在创建对象后访问 count
属性,如下所示。
示例
>>> std1=Student() >>> Student.count 1 >>> std2 = Student() >>> Student.count 2
以下演示了实例属性。
示例:设置属性值
class Student: def __init__(self, name, age): self.name = name self.age = age
现在,您可以在创建实例时指定值,如下所示。
示例:在构造函数中传递实例属性值
>>> std = Student('Bill',25) >>> std.name 'Bill' >>> std.age 25 >>> std.name = 'Steve' >>> std.age = 45 >>> std.name 'Steve' >>> std.age 45
访问 Python 类 以获取更多信息。