Python学习(三)-类属性与对象属性

什么是类属性,什么是对象属性?

前面先讲一下动态类型与静态类型:

动态类型与静态语言有所不同的,由于python是动态类型,这意味着python在创建对象时是可以随意增加属性。

类属性是类本身的属性,无论这个类创建了多少的对象,其类属性依然只有一个,所以对象与对象之间可以共享类属性。

对象属性则是对象的属性,会根据对象的创建而创建,销毁而销毁,对象与对象之间不能共享对象属性。

特别注意:

如图,F类中有类属性f,以及在创建对象时产生的对象属性f。两个同名,此时千万不要搞混(当然在自己设计时,最好不要出现这种情况)。在图中,我们对f进行初始化为10,当时类属性却没有变,因为这里修改的是对象属性而不是类属性。当把f.f进行删除后,同样方式的访问却又回到了类属性。

如果对象属性与类属性名称相同时,类属性将会被隐藏(有点类似子类隐藏父类的同名方法),所有最好不要这么设计,很有误导性。

补充:如何看类属性有哪些?

可以直接通过dir()函数进行获取,如图:

顺带的加入一个新属性s,在列表中就是属于类的属性和方法,在最后就可以看到类属性f和s。

对象信息的获取

如果不是自己设计的类,就无法知道起对象的属性有什么了么?

可以通过getattr()、setattr()、hasattr()进行操作。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值