python模块与面向对象编程_python面向编程: 常用模块补充与面向对象

面向对象

面向过程的使用场景:一些对扩展性要求不高的程序系统内核,shell脚本

面向对象的使用场景:常见的web开发 爬虫开发 数据分析等 对扩展性要求比较高

类和对象

对象是什么? 特征和技能的结合体 (万物皆对象)

类是什么? 一系列具备相同特征和技能的对象的 抽象概念

现实生活中 先有对象再有类

程序中 先有类 再有对象

使用OOP来编写程序时1.首先思考完成任务需要哪些对象参与2.在思考这些对象有什么要的特征和技能3.编写class4.按照需求 添加特征和行为5.实例化对象6.使用对象完成任务

三大特征

封装

什么意思? 将内部复杂内容进行隐藏 只提供一个简单的使用接口

本质上就是影藏一部分内容 使外界无法直接访问 只能通过提供的接口来访问

为什么要封装

对于开发者 作用对数据的访问加以限制 提高安全性

对于使用者而言 简化了操作

如何封装

属性前签上__两个下划线

pwd= 123

__pwd = 123

__的本质是语法级别上变形(在语法检测期间) _类名__属性名

这么一来 我么完全可以绕过语法限制

继承1.什么是继承

继承与现实生活中的继承一个意思 例如 小明继承小明他爹财产 房子

一个东西b继承了另一个东西a b就拥有a的内容

在代码中

一个类b继承了另一个类a b这个类 就拥有了a中所有属性

作用:

可以减少代码冗余2.使用场景:

例如: 你的项目中需要两种对象 老师和学生

分析发现 老师和学生有很多相似之处 都有 姓名 性别 年龄

将相同的部分属性 抽取到一个共同父类中person3.写法:classPerson:

共有的属性

name

age

genderdefsleep():print(大家都需要睡觉 睡觉的过程也相同)defattendClass():print("听到上课铃声 要去教室")4.派生:

分析:

学生和老师 有相同的功能叫上课

然而上课这个操作 学生和老师只有部分相同

可以把相同的部分 抽取到父类中

这样一来 学生就可以直接拥有父类中的上课方法 但是 实现方式与父类中有所不同

此时我们可以直接覆盖父类中的函数 这样一来 学生类称之为person类的派生类

总结:

结合上课讲到的属性的派生,总的来说 只要子类中东西和父类不同 就成为派生类

派生的案例:

继承自PersonclassStudent(Person):

学号(子类特有的)#上课

defattendClass():

super().attendClass()print("听课")

继承自PersonclassTeacher(Person):

工资(子类特有的)defattendClass():

super().attendClass()print("讲课")5.super 是创建了一个特殊对象,专门用于访问父类提供的属性classPerson:def __init__(self,name,age,gender):

self.name=name

self.age=age

self.gender=genderclassStudent(Person):#学生有学号

def __init__(self,name,age,gender,number):#1.指名道姓找到父类的函数

Person.__init__(self,name,age,gender)#2.创建特殊对象调用

super().__init__(name,age,gender)

self.number=number6.单继承和的多继承7.多继承中的查找顺序 mro

python2中 需要手动指定Object作为父类 它就成为了新式类

python3中 默认就继承Object 不需要手写

多态

组合

装饰器:

property

classmethod

staticmethod

类内置方法__str__打印对象时返回的字符串__del__删除对象前执行 一些清理操作

反射

以字符串的方式 对对象中的属性进增删改查

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值