类属性和实例属性

Posted josie-xu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了类属性和实例属性相关的知识,希望对你有一定的参考价值。

类属性:直接在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  #删除实例属性后,使用类属性

 

以上是关于类属性和实例属性的主要内容,如果未能解决你的问题,请参考以下文章

面向对象的成员: 实例变量 类变量 实例方法 类方法 静态方法 属性 私有

python之路之前没搞明白4面向对象(封装)

在python中获取类和实例的属性

Swift 属性

Python之路-面向对象&继承和多态&类属性和实例属性&类方法和静态方法

python属性和方法