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 ...
随机推荐
- 算法之美&数据结构与算法复习
1.归并两个有序链表(归并排序) 2.最小路径和--BP解法 3.计算int sqrt(x)--二分解法 4.趣味面试题 5.跳步游戏(Jump_Game)--后向回溯算法 6.Excel列号转十进制 ...
- python+selenium模拟鼠标操作
from selenium.webdriver.common.action_chains import ActionChains #导入鼠标相关的包 ------------------------- ...
- 杭州集训Day5
下面是Day5的题目!(其实都咕了好几天了 100+70+40=210. T1 皇后 XY 的疑难 (1s 512MB) 1.1 题目描述 有一个n*n的王国城堡地图上,皇后XY喜欢看骑士之间的战斗, ...
- 编写Servlet步骤以及Servlet生命周期是怎样的
一.编写Servlet步骤 1.继承HttpServlet,HttpServlet在javax-servlet-api依赖下 2.重写doGet()或者doPost()方法 3.在web.xml中注册 ...
- Java并发编程:锁的释放
Java并发编程:锁的释放 */--> code {color: #FF0000} pre.src {background-color: #002b36; color: #839496;} Ja ...
- 01:django基础篇
Django其他篇 目录: 1.1 django初探 1.2 第一个django项目 1.3 django render/redirect/HttpResponse 和 request.GET req ...
- 微信小程序获得微信头像和昵称
微信小程序之登录态的探索 { wx.getSetting({ success: res => { if (res.authSetting && res.authSetting[' ...
- 【源码解读】pix2pix(一):训练
源码地址:https://github.com/mrzhu-cool/pix2pix-pytorch 相比于朱俊彦的版本,这一版更加简单易读 训练的代码在train.py,开头依然是很多代码的共同三板 ...
- 使用form表单提交请求如何获取后台返回的数据?
问题描述 一般的form表单提交是单向的:只能给服务器发送数据,但是无法获取服务器返回的数据,也就是无法读取HTTP应答包. 想要真正的半双工通讯一般需要使用Ajax, 但是Ajax对文件传输也很麻烦 ...
- ssm中web配置各框架的配置文件路径方式
一.在web文件中配置 使用逗号隔开 二.在applicationContext.xml文件中配置或引用 以下是引用方式 注: <import />标签要放在所有bean配置的最前面.