# 类属性和实例属性
```python
class Student():
count = 10 # count是类属性
def __init__(self, name):
self.name = name
# name是实例属性
# 通过类来访问类属性
print(Student.count)
10
print(Student.name) # 报错AttributeError
s1 = Student('xiaoming')
print(s1.name)
xiaoming
print(s1.count)
10
# 实例也可以访问类属性
# 通过实例更改类属性的值,不影响类访问类属性的值
s1.count = 50
print(s1.count)
50
print(Student.count)
10
# 通过类更改类属性的值,不影响实例访问类属性的值
Student.count = 30
print(s1.count)
50
print(Student.count)
30
# 另外实例化一个对象,类属性值为最新值
s2 = Student('xiaohua')
print(s2.count)
30
print(Student.count)
30
```
```python
# 统计类调用次数来统计人数
class Student(object):
count = 0
def __init__(self, name):
self.name = name
Student.count += 1
# 测试
if Student.count != 0:
print('测试失败!')
else:
bart = Student('Bart')
if Student.count != 1:
print('测试失败!')
else:
lisa = Student('Bart')
if Student.count != 2:
print('测试失败!')
else:
print('Students:', Student.count)
print('测试通过!')
```