Python_021(内置方法讲解二)
一.内置方法二
1.__del__方法:
a:构造方法:创建一个空间, 析构方法;释放一个空间;
b:触发del的情况:Python解释器的垃圾回收机制,和遇到 del 对象名
c:析构方法的思想:
class A:
def __del__(self):
print(self)
a = A()
del a #这里先执行了__del__方法,再删除对象a,因为执行__del__方法时还要传入self;
print(a)
#输出结果:
<__main__.A object at 0x0000013CF5F59128> 被执行了
Traceback (most recent call last):
File "D:/Python/course/23.模块/day23/3.析构方法.py", line 49, in <module>
print(a)
NameError: name 'a' is not defined
d:python的垃圾回收机制:
class A:
def __del__(self):
print('Python解释器会在程序跑结束后执行我')
a = A()
print(a)
#输出结果:
<__main__.A object at 0x000001F823159128>
Python解释器会在程序跑结束后执行我
总结:del方法:是去归还/释放一些在创建对象时借用的一些资源(有可能是操作系统的资源)
例子:像一些常用的变量在Python底层的一些对象,都有Python解释器帮你回收,
而像一些像操作系统借用的资源就需要你执行回收方法自己释放;
像文件句柄;执行close操作,还有一些网络资源;
3.计算机内部执行一些小常识:
a:申请一块空间 操作系统会分配给你的 b:在这一块空间之内的所有事,归你的Python解释器管理;
*****所以在你借用了操作系统资源时,在程序结束之前要还回去,在del方法中写关闭代码;
4.item系列:
1)getitem:对象['key']触发该方法;
class A:
def __getitem__(self, item):
print(item)
return item #[item]触发getitem方法
a = A()
print(a['a'])
#输出结果:
a a
2)getitem和setitem的一些结合应用:
class A:
def __getitem__(self, item):
return getattr(self,item) #相当于self.key
def __setitem__(self, key, value):
setattr(self,key,value) #相当于self.key = value
a = A()
a['k'] = 'v'
print(a['k']) class A:
def __setitem__(self, key, value):
self.key = value
def __getitem__(self, item):
return self.key
a = A()
a['k'] = 'v'
print(a['k'])
#这两段代码的结果一样都是v,上面用到了映射
5.__hash__方法:
1)底层数据结构基于hash值寻址的优化操作
2) hash是一个算法,保证不同值的hash结果不一样的
对同一个值多次在Python解释器中执行的时候,hash值是不同的
但是对同一个值,在同一次执行Python代码的时候hash值永远不变
3)hash值不是万能的,有可能两个值的hash值相同,所以如果在一个变量进行hash算法之后发现地址有值,会进行一个判断,判断两个变量的值是否相等,若相等覆盖,若不等,则对这个变量再进行二次寻址,也遵循一个算法;
4)hash和eq(obj) # obj内部必须含有__hash__方法
class A:
def __init__(self,name):
self.name = name
def __eq__(self, other):
if self.name == other.name:
return True
a = A('s')
b = A('s')
c = A('s')
print(a == b == c)
#输出结果
True
::::::==触发对象中的eq方法
Python_021(内置方法讲解二)的更多相关文章
- Python 数据类型常用的内置方法(二)
目录 Python 数据类型常用的内置方法(二) 1.字符串类型常用内置方法 1.upper.lower.isupper.islower 2.startswith.endswith 3.format ...
- Python 数据类型常用的内置方法(三)
目录 Python 数据类型常用的内置方法(三) 1.列表内置方法 1.sort():升序 2.reverse():颠倒顺序 3.列表比较运算 2.字典内置方法 1.对Key的操作 2.len( )- ...
- python之字典二 内置方法总结
Python字典包含了以下内置方法: clear()函数用于删除字典内所有元素 dict1 = {, 'Class': 'First'} print('the start len %d' % len( ...
- Python笔记(二十一)_内置函数、内置方法
内置函数 issubclass(class1,class2) 判断class1类是否为class2类的子类,返回True和False 注意1:类会被认为是自身的子类 >>>issub ...
- python入门之数据类型及内置方法
目录 一.题记 二.整形int 2.1 用途 2.2 定义方式 2.3 常用方法 2.3.1 进制之间的转换 2.3.2 数据类型转换 3 类型总结 三.浮点型float 3.1 用途 3.2 定义方 ...
- 20180308-Python内置方法
先大致粗略的说一下反射的概念,不是很准确,后续详细讲解: 1. 以字符串的形式,导入模块 2. 以字符串的形式,获取模块内部的函数,并执行 通常我们想在一个模块中导入另外一个模块,则需要通过 impo ...
- 08python语法入门--基本数据类型及内置方法
数字类型int与float 定义 类型转换 使用 字符串 定义 类型转换 使用 优先掌握的操作 需要掌握的操作 了解操作 列表 定义 类型转化 使用 优先掌握的操作 需要掌握的操作 了解操作 元组 作 ...
- python今日分享(内置方法)
目录 一.习题详解 二.数据类型的内置方法理论 三.整型相关操作 四.浮点型相关操作 五.字符串相关操作 六.列表相关操作 今日详解 一.习题详解 1.计算1-100所有数据之和 all_num = ...
- python常用数据类型内置方法介绍
熟练掌握python常用数据类型内置方法是每个初学者必须具备的内功. 下面介绍了python常用的集中数据类型及其方法,点开源代码,其中对主要方法都进行了中文注释. 一.整型 a = 100 a.xx ...
随机推荐
- jeecg项目将workbook 的Excel流添加到zip压缩包里导出
1.直接献出代码 Map<String,List<ConfidentialInformation>> typeMap = new HashMap<>(); try ...
- 使用powershell管理Docker Toolbox
打开PowerShell,输入: docker-machine ls 我们可以看到我们当前的Docker虚拟机的状态.如果什么都没有的话,那么我们可以使用以下命令创建一个Docker虚拟机. dock ...
- 实验报告5&第七周课程总结
实验四 类的继承 实验目的 理解抽象类与接口的使用: 了解包的作用,掌握包的设计方法. 实验要求 掌握使用抽象类的方法. 掌握使用系统接口的技术和创建自定义接口的方法. 了解 Java 系统包的结构. ...
- spring maven依赖
图解spring容器 核心容器(core container) spring-core 这个jar 文件包含Spring 框架基本的核心工具类.Spring 其它组件要都要使用到这个包里的类,是其它组 ...
- Python内置函数compile
英文文档: compile(source, filename, mode, flags=0, dont_inherit=False, optimize=-1) Compile the source i ...
- 获取客户机MAC地址 根据IP地址 获取机器的MAC地址 / 获取真实Ip地址
[DllImport("Iphlpapi.dll")] private static extern int SendARP(Int32 dest, Int32 host, ref ...
- Linux文件拷贝(6)
本篇介绍文件拷贝操作,主要讲两个命令: 命令 对应英文 作用 tree[目录名] tree 以树状图列出文件目录结构 cp 源文件 目标文件 copy 复制文件或者目录 tree tree命令可以将一 ...
- [2019徐州网络赛J题]Random Access Iterator
题目链接 大致题意:从根节点出发,在节点x有son[x]次等概率进入儿子节点,求到达最深深度的概率.son[x]为x节点的儿子节点个数. 又又又又没做出来,心态崩了. 下来看了官方题解后发觉自己大体思 ...
- [BZOJ 3930] [CQOI 2015]选数(莫比乌斯反演+杜教筛)
[BZOJ 3930] [CQOI 2015]选数(莫比乌斯反演+杜教筛) 题面 我们知道,从区间\([L,R]\)(L和R为整数)中选取N个整数,总共有\((R-L+1)^N\)种方案.求最大公约数 ...
- linux基本命令之文件浏览(cat,more,less,tail,head),文件操作命令(cp,mv,rm,find)
linux文件浏览,文件操作命令 文件管理之文件浏览命令 1.cat命令:显示文本文件所有内容 格式:cat 文件名 适用场景:适合只有少量数据的文件,例如只有几行内容的可以使用此命令. 2.more ...