MST

星途 面试题库

面试题:Python中类属性值修改的常规方法

在Python中,定义一个简单的类,类中有一个类属性。请分别使用类和实例来修改这个类属性的值,并解释在不同情况下类属性值的变化及原因。
45.7万 热度难度
编程语言Python

知识考点

AI 面试

面试题答案

一键面试
class MyClass:
    class_attribute = 10

# 使用类修改类属性
MyClass.class_attribute = 20
print(MyClass.class_attribute)  # 输出 20

# 创建实例
instance = MyClass()
# 使用实例修改类属性
instance.class_attribute = 30
print(instance.class_attribute)  # 输出 30
print(MyClass.class_attribute)  # 输出 20

解释

  • 当使用类 MyClass.class_attribute = 20 修改类属性时,由于类属性是类的所有实例共享的,这种修改会影响到类以及所有现有和未来创建的实例。因为类属性存储在类对象中,直接通过类修改就改变了这个共享的值。
  • 当使用实例 instance.class_attribute = 30 修改时,实际上是在实例对象上创建了一个与类属性同名的实例属性。这并不会影响类属性本身的值,所以 MyClass.class_attribute 仍然是 20 。而 instance.class_attribute 访问的是实例自己创建的这个属性,值为 30 。