类属性:直接在class中 定义属性,通过类或者实例名称都可以访问,所有实例都可以共享。
实例属性:通过self绑定属性,或者通过实例名动态添加属性。
使用中,实例属性和类属性最好不要同名,不然会出现意想不到的问题。
class People(): nationality="chinese" #类属性 def __init__(self,nationality): self.nationality = nationality #实例属性 p1=People("usa") p1.name="wanggang" #实例1动态添加属性 print p1.nationality #通过实例名访问 print People.nationality #通过实例名访问 p1.nationality ="japanise" print p1.nationality #通过实例名访问 print People.nationality #通过实例名访问 del p1.nationality print People.nationality #通过实例名访问 #结果 usa #实例1属性,实例属性优先于类属性 chinese #类属性 japanise #修改实例1属性, chinese #类属性不会修改 chinese #删除实例属性后,使用类属性