Python
阿玮d博客
佛系博主 随缘更新
展开
-
Python垃圾回收机制
Python垃圾回收引用计数器为主标记清除和分代回收为辅+ 缓存机制1. 引用计数器1.1 环状双向链表 refchain在python程序中创建的任何对象都会放在refchain链表中。#define PyObject_HEAD PyObject ob_base;#define PyObject_VAR_HEAD PyVarObject ob_base;// 宏定义,包含 上一个、下一个,用于构造双向链表用。(放到refchain链表中时要用到)#define _PyObj原创 2020-05-10 16:33:09 · 9909 阅读 · 8 评论 -
Python 魔术方法
目录 常用魔术方法 描述符相关的魔术方法 与属性操作相关的魔术方法 运算相关魔术方法(上帝模式)比较运算相关魔术方法算术运算相关魔术方法反运算相关魔术方法赋值运算相关魔术方法一元运算相关魔术方法类型转换相关魔术方法上下文管理相关魔术方法容器类型相关魔术方法常用魔术方法魔术方法就是一个类/对象中的方法,和普通方法...转载 2020-04-23 11:18:45 · 378 阅读 · 0 评论 -
Python 迭代器、生成器
文章目录一、可迭代对象二、迭代器三、可迭代对象与迭代器对比四、生成器通过生成器函数构建生成器通过推导式构建生成器一、可迭代对象字面意思:对象:Python 中一切皆为对象(巧了 Java 也是(手动滑稽))可迭代:可更新迭代,重复、循环的一个过程,每次更新迭代都会获得新的内容专业角度:内部含有 '__iter__‘ 方法的对象目前学过的可迭代对象:str、list、tuple、...原创 2020-04-22 16:14:12 · 420 阅读 · 0 评论 -
Python 深浅拷贝
文章目录一、赋值二、浅拷贝三、深拷贝四、总结一、赋值前面说过,一个对象有 id、type、value 三个要素,变量名通过引用 id 的方式去找到一个对象(类似于文件名通过 inode 找到具体数据块,只有 id 能唯一标识一个对象)。而用一个变量赋值给令一个变量,就相当于这两个变量共享了这个引用(优点像硬链接)如果删除掉 a 之后,并不会影响 b 的引用在不可变数据类型中这是没问...原创 2020-04-21 16:28:06 · 448 阅读 · 1 评论 -
Python 代码块、缓存机制
文章目录一、id,is,==二、代码块代码块的缓存机制三、小数据池四、总结一、id,is,==Python中一切皆对象。对象包含三个要素,id、type、value。id 是对象的内存地址。每当我们创建一个对象的时候都会在内存中开辟一块空间,将这个对象的数据临时存放到内存中,id就是这个空间的唯一标号,就好比身份证号。type 是对象的数据类型。包括 int(包括long)、float、s...原创 2020-04-21 10:39:16 · 715 阅读 · 1 评论 -
Python 文件操作
打开文件在 Python 中实现文件的读写操作非常简单,通过内置函数 open(),我们可以指定文件名、操作模式、编码信息等来获得操作文件的对象(流),接下来就可以对文件进行读写操作了。这里所说的操作模式是指要打开什么样的文件(字符文件还是二进制文件)以及要做什么样的操作(读、写还是追加)操作模式具体含义r读取(默认)w写入,如果文件已存在会覆盖之前的内容x...原创 2020-04-20 10:23:24 · 182 阅读 · 0 评论 -
Python 函数
变量作用域 LEGB:L —— Local(function):函数内的名字空间E —— Enclosing function locals:外部嵌套函数的名字空间G —— Global(module):函数定义所在模块(文件)的名字空间B —— Builtin(Python):Python 内置模块的名字空间普通函数:def 函数名([参数,...]): pass闭包:d...原创 2020-04-18 13:57:51 · 233 阅读 · 0 评论 -
【Python】堆(heap)的基本操作
在 python 中要想使用堆,首先要导入堆模块import heapq # 载入 heap 库,heap 指的是小顶堆堆中的方法heapq.heappush[heap, x) # 将x压入堆中heapq.heappop(heap) # 从堆中弹出最小的元素heapq.heap = heapify(list) # 将列表转换成堆m = heapq.heaprepl...原创 2020-03-30 17:10:19 · 1164 阅读 · 0 评论