IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 2021-07-09 -> 正文阅读

[Python知识库]2021-07-09

Python基础
-6-面向对象-02

一、生命周期

1、概念:指的是一个对象,从诞生到消亡的过程,当一个对象被创建时,会在内存中分配相应的内存空间进行储存,当这个对象不再使用时,为了节约内存,就会把这个对象释放。

2、监听对象生命周期
_ _new_ _方法:当我们创建一个对象时,用于给这个对象分配内存的方法,?通过拦截这个方法,可以修改对象的创建过程
_ _init_ _方法:当我们创建一个对象后,自动执行的方法(初始化方法)
_ _del_ _方法:当我们删除一个对象后,自动执行的方法

3、储存方面
(1)在Python中万物皆对象, 不存在基本数据类型, 0,1.2,True,"abc"等都是对象
(2)所有对象,都会在内存中开辟一块空间进行储存,会根据不同的数据类型以及内容,开辟不同的空间大小进行储存,返回该空间的地址给外界接收(称为“引用”),用于后续对这个的操作
(3)可通过id()函数获取内存地址(10进制)
(4)可通过hex()函数查看对应的16进制地址;例:hex(id(xxx))
(5)对于整数和短小的字符,Python会进行缓存;不会创建多个相同的对象
(6)容器对象储存的其他对象,仅仅是其他对象的引用,并不是其他对象本身

4、垃圾回收方面

(1)引用计数器
一个对象,会记录着自身被引用的个数(引用个数为0时被自动释放)
每增加一个引用,这个对象的引用计数会自动+1
每减少一个引用,这个对象的引用计数会自动-1

? ? ? ? 查看引用计数(注意会大1)

import ?sys
sys.getrefcount(对象)

(2)垃圾回收

主要作用:从经历过“引用计数器”仍未被释放的对象中,找到“循环引用”,清理相关对象(即解决循环引用问题)
????????循环引用图解


二、面向对象三大特征

1、封装
????????概念:

?将一些属性和方法封装在一个对象中,对外隐藏内部具体实现细节,内部实现,外界不需要关心,外界只需要根据“内部提供的接口”去使用就可以
????????好处:

(1)使用起来更加方便,因为已经把很多相关功能封装成一个整体,类似于外界提供的一个工具箱,针对不同的场景,使用不同的工具箱就可以

(2)保证数据安全,?针对安全级别比较高的数据,可以设置成“私有”,可以控制数据为只读,外界无法修改,也可以拦截数据的写操作,进行数据校验和过滤

(3)利于代码维护,如果后期,功能代码需要维护,则直接修改这个类内部代码即可;只要保证接口名称不变,外界不需要做任何代码修改。

2、继承

概念:?现实中的“继承”,子女继承父母的“财产资源”;编程中的“继承”,一个类“拥有”另一个类的指“非私有的”属性和方法
目的:方便资源重用

分类:

(1)概念:?仅仅继承了一个父类

(2)概念:继承了多个父类

资源的继承:
在Python中继承指资源的使用权,所以,测试某个资源能否被继承,其实就是测试在子类中,能不能访问到父类中这个资源
结论:除了私有属性和私有方法,其他的基本都能继承
公有属性/方法
受保护属性/方法
内置方法

继承的几种形态:
单继承链
无重叠的多继承链
有重叠的多继承链


?

几种形态应该遵循的标准原则

?资源的覆盖:
包括:属性的覆盖,方法重写
原理:在MRO资源检索链中,优先级高的类写入了一个和优先级较低类同名的一个资源(属性或方法),去使用相关资源时,优先选择优先级较高的资源;从而造成“覆盖的假象”
注意事项:当调用优先级较高的资源时,注意self变化,谁调用方法:self就是谁, cls参数就是谁对应的类

资源的累加:对于重写__init__()方法增属性时,调用父类的__init__()方法。
super(),根据上下文环境自动判断,ython3+
查看某个类资源查找顺序:
法1:
import ?inspect
inspect.getmro(类)
法2:
?? ?类名._ _mro_ _
法3:
?? ?类名.mro()

3、多肽
概念:
一个类,所延伸的多种形态,调用时的多种形态,(其它语言)在继承的前提下;使用不同的子类,调用父类的同一个方法,产生不同的功能

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-07-11 16:36:07  更:2021-07-11 16:37:33 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 0:29:02-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码