day8

方法没有重载

在python中,方法的参数没有ugm类型(调用时确定参数的类型),参数的数量也可以由可变参数控制。因此,python中是没有方法的重载的。定义一个方法即可有多种调用方式,相当于实现了其他语言中的方法重载
如果我们在类体中定义了多个重名的方法,只有最后一个方法有效

方法的动态性

私有属性和私有方法(实现封装)

python对于类的成员没有严格的访问控制限制,这与其他面向对象语言有区别。关于私有属性和私有方法,有如下要点:
1.通常我们约定,有两个下划线开头的属性是私有的(private)。其他为公共的(public)
2.类内部可以访问私有属性(方法)
3.类外部不能直接访问私有属性
4.类外部可以通过“_类名_私有属性(方法)名访问私有属性(方法)”
【注】方法本质上也是属性。只不过是可以通过()执行而已。

property装饰器

面对对象的三大特征

隐藏

隐藏对象的属性和实现细节,只对外提供必要的方法,相当于将“细节封装起来”,只对外暴露“相关调用方法”

继承

继承可以让子类具有父亲的特性,提高代码的重用性
语法格式如下:
class 子类类名(父类1 [,父类2,…])
类体
如果在类定义中没有指定父类,则默认父类是object类。也就是说,object是所有类的父类,里面定义了一些所有类共有的默认实现 new()
定义子类时,必须在其构造函数中调用父类的构造函数,调用格式如下:
父类名.init(self,参数列表)
在这里插入图片描述

类成员的继承和重写

方法重写:子类可以重新定义父类中的方法,这样就会覆盖父类的方法,称为“重写”
在这里插入图片描述

查看类的继承层次结构

通过类的方法mro()或者类的属性_mro_可以输出这个类的继承层次结构
在这里插入图片描述
在这里插入图片描述

dir()查看属性

重写__str__()方法

object有一个_str_()方法,用于返回一个对于“对象的描述
在这里插入图片描述

多重继承

在这里插入图片描述

mro()

python支持多继承,如果父类中有相同名字的方法,在子类没有指定父类名时,解释器将“从左往右”按顺序搜索
mro():方法解析顺序。我们可以通过mro()方法获得“类的层次结构”,方法解析顺序也是按照这个“类的层次结构”寻找的

super(获得父类定义)

super()代表父类的定义,不是父类对象
在这里插入图片描述

多态

多态是指同一个方法调用由于对象不同会产生不同的行为
1.多态是方法的多态,属性没有多态
2.多态的存在有2个必要条件:继承、方法重写

特殊方法和运算符重载

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

特殊属性

python对象中包含了很多双下划线开始和结束的属性,这些是特殊属性,有特殊用法。
在这里插入图片描述

组合

组合就是has-a的关系
在这里插入图片描述

设计模式

工厂模式

实现创建者和调用者的分离
在这里插入图片描述

单例模式

核心作用是确保一个类只有一个实例,并且提供一个访问该实例的全局访问点。单例模式只生成一个实例对象,减少了对系统资源的开销,当一个对象的产生需要比较多的资源,如读取配置文件、产生其他依赖对象时,可以产生一个单例对象,然后永久驻留内存中,从而极大的降低开销
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值