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 ...
随机推荐
- hdu5993/2016icpc青岛L
zz:https://www.cnblogs.com/ytytzzz/p/9674661.html 题意:给一棵树,每次询问删掉两条边,问剩下的三棵树的最大直径点10W,询问10W,询问相互独立 So ...
- [Mac Terminal] ___MAC终端清屏快捷键
清全屏: command + K 清上一行命令:command + L
- IntelliJ IDEA 快捷键终极大全
自动代码 常用的有fori/sout/psvm+Tab即可生成循环.System.out.main方法等boilerplate样板代码 . 例如要输入for(User user : users)只需输 ...
- 一、Zabbix-学习列表
近期本人在求职,面试了几家,觉得监控是一个很重要的事情,所以决定深入学习一下监控.目前的监控系统有很多,Zabbix是目前应用最广泛的开源监控之一,功能比较完善,所以决定学习一下. 目前将学习zabb ...
- vue组件注册(极客时间Vue视频笔记)
vue组件注册 组件是为了方便代码复用,只需引入组件即可在不同的地方使用想同的功能代码 <body> <div class="app"> <todo- ...
- Miller-Robin 素数测试法 模板
测试单个素数,出错概率比计算机本身出错的概率还要低 算法是基于费马小定理(format),二次探测定理(x*x % p == 1 ,若P为素数,则x的解只能是x = 1或者x = p - 1)加上迭代 ...
- Java——ArrayList使用Demo
三种遍历方式 通过迭代器Iterator遍历 通过get(索引值)遍历 for循环遍历 ArrayList使用Demo package list; import java.util.ArrayList ...
- codeforces 597 div 2
A 题意: 有无限个方块,上面分别是0,1,2......若方块i可以被表示为ax+by(x,y>0),则方块为白色,否则为黑色,给出a,b.问黑方块是否有无限个. 分析: 1:若(a,b)=1 ...
- linux-memcache安装及memcached memcache扩展
linux memcached安装yum -y install libevent libevent-deve yum list memcached yum -y install memcached m ...
- .net WebApi使用swagger 美化接口文档
本文将一步步演示如何用swagger美化WebApi接口文档,为接口文档添加接口名称说明,为请求参数和返回数据结构字段含义添加注释说明 一.为WebApi项目安装Swagger 首先我们新建一个Web ...