Python学习札记(三十五) 面向对象编程 Object Oriented Program 6

参考:实例属性和类属性

NOTE

Python是动态语言,根据类创建的实例可以任意绑定属性。

class Student(object):
    def __init__(self, name):
        self.name = name

a = Student('Chen')
a.score = 90

同时,也可以直接给类绑定一个属性:

class Student(object):
    name = 'Student'

当我们定义了一个类属性后,这个属性虽然归类所有,但类的所有实例都可以访问到。

>>> class Student(object):
...     name = 'Student'
... 

>>> s = Student()

>>> print(s.name)
Student 

>>> print(Student.name)
Student

>>> s.name = 'Chen'
>>> print(s.name)
Chen

>>> del s.name
>>> print(s.name)
Student

当对象也定义了一个同名的属性时,会将原有的类属性覆盖掉,当删除对象的这个属性时,再次访问就会访问到类属性。

所以类属性一般不和对象的属性重名。

2017/2/28

posted @ 2017-02-28 20:31  Wasdns  阅读(150)  评论(0编辑  收藏  举报