类属性与实例属性的区别:
类属性:
是与类相关联的属性,在类级别上定义,对于所有该类的实例来说都是相同的。可以通过在类的内部直接定义赋值来创建类属性。
Example:
class MyClass:
class_attribute = "This is a class attribute"
# 访问类属性
print(MyClass.class_attribute)
实例属性:
每个实例都有自己的一份。实例属性在每个实例创建时在__init__方法中赋值。通常是是在类的构造函数'__init__'方法内部使用self关键字定义的。
Example:
class MyClass:
def __init__(self):
self.instance_attribute = "This is an instance attribute"
# 创建类的实例
my_instance = MyClass()
# 访问实例属性
print(my_instance.instance_attribute)
注意:
当实例属性与类属性同名时,实例属性会覆盖类属性。
何时使用类属性和实例属性:
(1)类属性:属性对于所有实例来说是相同的,且不会随着实例变化而变化;例如:类的常量,默认参数,与类本身相关的信息。
需要在不同的实例之间共享属性时,可使用类属性。
访问和修改:通过类实现。类名.属性名
(2)实例属性:
属性的值与实例状态相关,每个实例需要有自己独立的值时,常使用实例属性;例如对象的特征、状态或实例化时的配置。