python 基础学习第二弹 类属性和实例属性


在Python中,类属性和实例属性是面向对象编程中非常重要的概念。这里我将简要解释它们的区别,并给出一些示例代码来帮助你理解。

### 类属性

类属性是定义在类级别上的变量,它属于类本身,而不是类的任何特定实例。这意味着类属性可以被类的所有实例共享和访问。如果你修改了一个类的类属性的值,那么这个修改会影响到所有通过这个类创建的实例。

**示例代码**:


class MyClass:
    # 这是一个类属性
    class_attribute = "这是类属性的值"

    def __init__(self, instance_attribute):
        # 这是一个实例属性
        self.instance_attribute = instance_attribute

# 创建两个实例
instance1 = MyClass("实例1的属性值")
instance2 = MyClass("实例2的属性值")

# 访问类属性
print(MyClass.class_attribute)  # 输出: 这是类属性的值
print(instance1.class_attribute)  # 也可以通过实例访问类属性
print(instance2.class_attribute)

# 修改类属性
MyClass.class_attribute = "类属性的新值"
print(MyClass.class_attribute)  # 输出: 类属性的新值
print(instance1.class_attribute)  # 实例1和实例2的类属性也会更新
print(instance2.class_attribute)

### 实例属性

实例属性是定义在实例级别上的变量,每个实例都有自己的实例属性副本,互不干扰。当你通过类的构造函数(`__init__`方法)或其他实例方法设置属性时,这些属性就成为了实例属性。

**注意**:在上面的示例代码中,`self.instance_attribute`就是一个实例属性。

希望这个解释和示例代码能帮助你理解Python中的类属性和实例属性的区别。如果你有任何进一步的问题,请随时提问。