Python面向对象相关理论

面向对象3要素
1.封装:将数据和操作组装到一起,隐藏数据。
2.继承:多复用,多继承少修改。
3.多态:动态绑定。

Python的类
定义:1.必须使用class关键字.
2.类名必须使用大驼峰命名。
3. 类定义完成后,就产生了一个类对象,绑定到了标识符ClassName上。

类对象及类属性
类对象:类的定义就会生成一个类对象。
类的属性:类定义中的变量和类中定义的方法都是类的属性。
类变量:类所生成的变量.

实例变量是每一个实例自己的变量,是自己独有的;类变量是类的变量,是类的所有实例共享的属性和方法。

一般使用self 指代当前实例本身,cls指代类本身。

类属性保存在类的__dict__中,实例属性保存在实例的__dict__中,如果从实例访问类的属性,需要借助__class__找到所属的类。

实例属性的查找顺序
实例会先找自己的__dict__,若果没有,然后通过属性__class__找到自己的类,再去找类的__dict__中找。
一般来说,类变量使用全大写来命名。

双下划线开头的属性名,就是私有属性,在字典里改成了_类名__变量名,所以用原来的名字访问不到了.

property装饰器
后面跟的函数名就是以后的属性名,他就是getter.这个必须有,有了它至少是只读属性。

setter装饰器
与属性名同名,且接收2个参数,第一个是self,第二个是将要赋值的值,有了它,属性可写。

deleter装饰器
可以控制是否删除属性。很少用

对象的销毁
类中可以定义__del__方法,称为析构函数。
销毁类的实例的时候调用,以释放占用的资源。这个方法不会引起对象的真正销毁,只是对象销毁时会自动调用它。使用del语句 时,引用计数减1,当引用计数为0时,会自动调用__del__方法,由于Python实现了垃圾回收机制,不能确定对象何时执行垃圾回收。

继承相关
父类也称基类,超类。 子类也称派生类。

__base__ 类的基类
__bases__ 类的基类元组
__mro__ 显示方法查找顺序,基类的元组
mro() 同上
__subclasses__ 类的子类列表

继承时,公有的,子类和实例都可以随意访问;私有成员被隐藏,子类和实例不可直接访问,当私有变量所在的类内的方法中可以访问这个私有变量。

属性查找顺序:实例的__dict__ > 类的__dict__ 如果有继承 > 父类的__dict__ ,如果搜索这些地方后没有找到就会抛异常,先找到就立即返回了。



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值