类属性:
- 如果要给类本身绑定一个属性,可以直接定义,在def之外,class之内
In [5]: class Student(object):
...: name = 'Student'
...:
实例属性:
- 给实例绑定属性的办法是通过实例变量,或者是self变量
In [1]: class Student(object):
...: def __init__(self,name):
...: self.name = name
...:
In [2]: s = Student('Bob')
In [3]: s.score = 80
In [4]: s.score
Out[4]: 80
实例共享同一类变量
- 实战:统计这个类共计实例化了多少次对象
class Test(object):
num = 0
def __init__(self,name):
self.name = name
Test.num += 1
t1 = Test('t1')
t2 = Test('t2')
t3 = Test('t3')
print(Test.num)
每次实例化操作,每个实例中涉及到的方法都会通过这个特殊的属性到类里去寻找,只有每个实例的实例属性是各自的。
结论:
- 实例属性:和具体的某个实例对象有关系,并且一个实例对象和另外一个实例对象是不共享属性的
- 类属性:类属性属于类对象,并且多个实例对象之间能共享同一个类属性