举个python中类属性和实例属性的例子
时间: 2024-02-05 17:11:33 浏览: 26
假设我们有一个名为`Person`的类,它包括`name`和`age`两个属性。`name`属性是每个实例都有的,而`age`属性则可能因人而异。
```python
class Person:
# 类属性
species = 'human'
def __init__(self, name, age):
# 实例属性
self.name = name
self.age = age
```
在上面的代码中,`species`是一个类属性,因为它定义在类的命名空间中,而不是在方法中。它的值对于所有该类的实例都是相同的。 `name`和`age`是实例属性,因为它们在类的构造函数中被定义,并且它们的值因实例而异。
例如,我们可以创建两个`Person`对象:
```python
person1 = Person('Alice', 25)
person2 = Person('Bob', 30)
```
现在,我们可以通过访问它们的属性来访问这些对象的属性:
```python
print(person1.name) # 输出: Alice
print(person2.name) # 输出: Bob
print(person1.age) # 输出: 25
print(person2.age) # 输出: 30
print(person1.species) # 输出: human
print(person2.species) # 输出: human
```
我们可以看到,在这个例子中,`name`和`age`是每个实例的实例属性,而`species`是每个类的类属性。每个实例都可以访问类属性,但是对类属性的修改只会影响到类本身,而不是实例。