python 面向对象六 类属性和实例属性

一、实例属性

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

 1 >>> class Student(object):
 2 ...     def __init__(self, name):
 3 ...         self.name = name   # 每个实例必须的属性
 4 ... 
 5 >>> s = Student('Jack')
 6 >>> s.score = 90    # 任意绑定属性
 7 >>> s.name
 8 'Jack'
 9 >>> s.score
10 90

二、类属性

直接在class中定义属性,这种属性是类属性,归Student类所有。

 1 >>> class Student(object):
 2 ...     name = 'Jack'   # 类属性
 3 ... 
 4 >>> Student.name        # 获取类属性
 5 'Jack'
 6 >>> s = Student()
 7 >>> s.name              # 获取类属性
 8 'Jack'
 9 >>> s.name = 'Mike'     # 添加实例属性
10 >>> s.name              # 获取实例属性
11 'Mike'
12 >>> Student.name        # 获取类属性
13 'Jack'

在编写程序的时候,千万不要对实例属性和类属性使用相同的名字,因为相同名称的实例属性将屏蔽掉类属性,但是当你删除实例属性后,再使用相同的名称,访问到的将是类属性。

原文地址:https://www.cnblogs.com/gundan/p/8052481.html