考试报名
考试报名
考试内容
考试大纲
在线客服
返回顶部

备考刷题,请到

CDA认证小程序

以下关于类属性和实例属性的叙述正确的是?
A. 类属性通常用于保存每个实例化的对象都相同的数据, 实例属性用于保存每个实例化的对象不同的数据
B. 类属性覆盖范围更大, 实例属性只能覆盖对象
C. 类属性是实例属性的父属性
D. 当改变一个实例属性的时候, 其他的实例该属性也都会跟着改变
上一题
下一题
收藏
点赞
评论
题目解析
题目评论(0)

正确答案是 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`是实例属性,每个实例有自己的值,不会相互影响。