正确答案是 A: 类属性通常用于保存每个实例化的对象都相同的数据,实例属性用于保存每个实例化的对象不同的数据。
### 专业分析:
1. **类属性和实例属性的定义**:
- **类属性**:属于类本身,所有实例共享此属性。当修改类属性时,所有实例都会受到影响,因为它们都引用同一类属性。
- **实例属性**:属于具体的实例,每个实例都有自己独立的实例属性。当修改一个实例的属性时,不会影响其他实例。
2. **选项分析**:
- **A**: 正确。类属性用于共享相同的数据,而实例属性用于实例间存储不同的数据。
- **B**: 描述不准确。虽然类属性广播给所有实例,但并不表示“覆盖范围更大”,只是它共享的特性。
- **C**: 错误。类属性和实例属性之间没有“父子”关系。实例属性是独立于类属性的。
- **D**: 错误。改变一个实例的实例属性不会影响其他实例的实例属性。
### 举例说明:
```python
class MyClass:
class_attribute = 'Shared Value' # 类属性
def __init__(self, instance_attribute):
self.instance_attribute = instance_attribute # 实例属性
# 创建实例
obj1 = MyClass('Object 1 Value')
obj2 = MyClass('Object 2 Value')
print(obj1.class_attribute) # Output: 'Shared Value'
print(obj2.class_attribute) # Output: 'Shared Value'
# 修改类属性
MyClass.class_attribute = 'New Shared Value'
print(obj1.class_attribute) # Output: 'New Shared Value'
print(obj2.class_attribute) # Output: 'New Shared Value'
# Individual instance attributes
print(obj1.instance_attribute) # Output: 'Object 1 Value'
print(obj2.instance_attribute) # Output: 'Object 2 Value'
```
在上述例子中,`class_attribute`是类属性,所有实例共享修改后的值。而`instance_attribute`是实例属性,每个实例有自己的值,不会相互影响。