1. 在类的内部直接声明变量:
class MyClass:class_attribute = "I am a class attribute"
2. 在类的构造方法`__init__`中定义属性:
class MyClass:def __init__(self):self.instance_attribute = "I am an instance attribute"
3. 使用`@property`装饰器定义属性:
class MyClass:def __init__(self):self._attribute = None@propertydef attribute(self):return self._attribute@attribute.setterdef attribute(self, value):self._attribute = value
4. 在类的方法中动态添加属性:
class MyClass:def set_attr(self, attr_name, attr_value):setattr(self, attr_name, attr_value)
5. 使用两个下划线前缀表示私有属性(虽然这仅仅是一个约定,Python并不会真的阻止访问):
class MyClass:def __init__(self):self.__private_attribute = "I am a private attribute"
类属性与实例属性不同,类属性是属于类本身的,所有实例共享同一个值,而实例属性是属于类实例的,每个实例拥有自己的副本。
需要注意的是,在Python中,单下划线前缀(如`_attribute`)通常用于表示属性是受保护的,而双下划线前缀(如`__attribute`)表示属性是私有的。然而,这些约定并不强制执行,访问私有属性仍然可能发生,只是不推荐这样做。

