Python属性和实例属性的区别

类属性:直接在class中定义的是类属性

class Student(object):
    name="xiaoming"

实例属性:实例属性必须通过实例来绑定,比如

    self.name = "xiaoming"

下面直接代码分析:

>>class Student(object):
    name="xiaoming"
>>s = Student()
>print(s.name)#由于没有实例的name属性,所以会继续查找类的name属性(类属性)
xiaoming

>Student.name #这样与上述实例调用一致,都是调用的类属性
xiaoming

>s.name = "xiaogang" #这时就给实例绑定上了name属性(实例属性)

>print(s.name)
xiaogang #由于实例属性的优先级较高,会屏蔽掉类的name属性

>print(Student.name)
xiaoming #虽然实例绑定上了实例属性name,但是类属性并没有消失

>del s.name #删除实例的name属性

>print(s.name)
xiaoming #再次调用s.name,由于实例属性name属性没有被找到,类的name属性就显#示出来了

key Points:

编写程序的时候,千万不要把实例属性和类属性使用相同的名字

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值