python必学
岷遥
在路上
展开
-
python进阶三:垃圾回收机制
垃圾回收机制 python程序运行时需要开辟一块内存空间用来管理程序运行时产生的临时变量,运行结束后将运行结果存储到永久性存储器中 内存泄漏: (1)不再使用的内存未能释放 (2)程序设计错误导致失去对内存的控制,从而造成资源浪费 一、引用计数法 python中一切皆对象,变量其实都是一个指针指向一个对象,当对象的引用计数()指针数为0时,内存将被回收 手动启动垃圾回收: import os import psutil import gc # 显示当前 python 程序占用的内存大小 def show_原创 2020-07-08 17:42:33 · 122 阅读 · 0 评论 -
python进阶二:函数装饰器、类装饰器、如何保证原函数的元信息、装饰器嵌套、装饰器应用场景
装饰器 一、简单装饰器 def my_decorator(func): def wrapper(): print('wrapper of decorator!') func() return wrapper def greet(): print('halo world!') greet = my_decorator(greet) greet() # 输出 wrapper of decorator! hello world! @my_de原创 2020-07-03 17:56:20 · 205 阅读 · 0 评论 -
python基础二:字典和集合增删改查的底层原理
字典和集合 字典在3.7+中被确认为有序;集合是无序的并且无法进行索引操作 字典和集合内部是哈希表 对于字典,这张表内部存储了哈希值、键和值 对于集合,哈希表中没有键和值配对,只有单一的元素 1、插入操作 每次向字典或集合插入元素时,python首先会计算其hash值,根据hash值计算出这个元素应该插入哈希表的位置 (1)如果此位置是空的,那么直接插入 (2)如果此位置被占用,则说明该位置被占用,python会比较这两个元素分别对应的哈希值和键是否相等。 若相等,说明该元素已存在,如原创 2020-06-18 23:40:59 · 215 阅读 · 0 评论 -
python进阶一:深拷贝浅拷贝,==和is区别
1、浅拷贝 指重新分配一块内存,创建一个对象,里面的对象是原对象中子对象的引用 2、深拷贝 指重新分配一块内存,创建一个新的对象,并将原对象的元素以递归方式,通过创建新的子对象拷贝到新对象中,因此,新对象和原对象没有任何关联 3、“==”和“is” “==”是比较两个值是否相等,“is”是判断他们是否指向同一内存地址 “is"效率优于”==",因为"is"只需要获取对象的id进行比较,而"=="需要递归的遍历对象所有值,并逐一比较。 python会把-5到256到证书维持一个数组,起到一个缓存作用。这样,每原创 2020-06-27 22:30:27 · 158 阅读 · 0 评论