Python 中类属性和实例属性的区别
类和对像简介
类是如何定义某物的蓝图。它实际上不包含任何数据——它是一个模板,用于根据模板或蓝图中定义的规范创建实例。
类的对象是从类构建的实例,这就是为什么它也被称为类的实例。在本章和本书的其余部分,我们将同义地引用对象和实例。OOP中的对象偶尔由物理对象表示,如桌子、椅子或书籍。在大多数情况下,软件程序中的对象表示可能不是物理的抽象实体,如帐户、名称、地址和付款。
为了更新类和对象的基本概念,我们将用代码示例定义这些术语。
区别类属性和实例属性
类属性被定义为类定义的一部分,它们的值在从该类创建的所有实例中都是相同的。可以使用类名或实例名访问类属性,但建议使用类名访问这些属性(用于读取或更新)。对象的状态或数据由实例属性提供。
在Python中定义一个类只需使用class
关键字即可。以下代码片段创建了一个Car类:
class Car:
pass
如果你喜欢用汉字做类的名字(你是不是不知道这个功能),也是可以的:
class 小汽车类:
pass
注意: 只有名字可以是汉字的,其它的类似 Python 关键字之类的,还是要遵循 Python 的规则。
此类没有属性和方法。它是一个空类,在我们向其添加更多组件之前,您可能会认为这个类毫无用处。不完全是!在Python中,您可以动态添加属性,而无需在类中定义它们。以下代码片段是一个有效的代码示例,我们在运行时向类实例添加属性:
class 小汽车类:
pass
if __name__ == "__main__":
小汽车 = 小汽车类()
小汽车.颜色 = "红色"
小汽车.品牌 = "问界 M9"
print(小汽车.颜色)
print(小汽车.品牌)
在这个扩展示例中,我们创建了小汽车类
的一个实例(小汽车
),然后向该实例添加了两个属性:颜色
和品牌
。请注意,使用此方法添加的属性是实例属性。
接下来,我们将使用构造函数方法(__init__
)添加类属性和实例属性,该方法在对象创建时加载。下面显示了一个包含两个实例属性(颜色
和品牌
)和 __init__
方法的代码片段:
class 小汽车类