码迷,mamicode.com
首页 >  
搜索关键字:python源码    ( 254个结果
80个Python经典资料(教程+源码+工具)汇总——下载目录 ...
原文转自:http://bbs.51cto.com/thread-935214-1.html大家好,51CTO下载中心根据资料的热度和好评度收集了80个Python资料,分享给Python开发的同学。内容包括1个Python专题、66个学习资料、7套Python源码和6个相关软件。附件较多,无法一一...
分类:编程语言   时间:2014-07-06 18:42:35    阅读次数:303
《python源码剖析》笔记 python多线程机制
1.GIL与线程调度 Python中的线程是操作系统的原生线程,Python虚拟机使用一个全局解释器锁(Global Interpreter Lock)来互斥线程对Python虚拟机的使用 为了支持多线程机制,一个基本的要求就是需要实现不同线程对共享资源访问的互斥,所以引入了GIL。 GIL:在一个线程拥有了解释器的访问权之后,其他的所有线程都必须等待它释放解释器的访问权,即使这些线程的下一条指令并不会互相影响。 在调用任何Python C API之前,要先获得GIL GIL缺点:多处理器退化为单处理器;优...
分类:编程语言   时间:2014-06-25 19:48:52    阅读次数:358
《python源码剖析》笔记 python虚拟机中的函数机制
1.Python虚拟机在执行函数调用时会动态地创建新的 PyFrameObject对象, 这些PyFrameObject对象之间会形成PyFrameObject对象链,模拟x86平台上运行时栈 2.PyFuctionObject对象 typedef struct { PyObject_HEAD PyObject *func_code; //对应函数编译后的PyCodeObject对象 PyObject *func_globals; //函数运行时的global空间 PyObject *func_...
分类:编程语言   时间:2014-06-24 21:56:10    阅读次数:415
《python源码剖析》笔记 python环境初始化
1.线程环境初始化 图13-1 Py_InitializeEx,Python会首先调用 PyInterpreterState_New创建一个崭新的PyInterpreterState对象。 图13-2 创建了PyInterpreterState(进程状态)对象之后,Python会调用PyThreadState_New创建PyThreadState(线程状态)对象 图13-3 全局变量_PyThreadState_Current维护着当前活动的线程 PyInterpreterState对象中维护着所有的PyT...
分类:编程语言   时间:2014-06-24 20:19:50    阅读次数:335
《python源码剖析》笔记 Python虚拟机框架
1. Python虚拟机会从编译得到的PyCodeObject对象中依次读入每一条字节码指令, 并在当前的上下文环境中执行这条字节码指令。 Python虚拟机实际上是在模拟操作中执行文件的过程 PyCodeObject对象中包含了字节码指令以及程序的所有静态信息,但没有包含 程序运行时的动态信息——执行环境(PyFrameObject) 2.Python源码中的PyFrameObject typedef struct _frame{ PyObject_VAR_HEAD //"运行时栈"的大小是不确定的...
分类:编程语言   时间:2014-06-18 06:33:24    阅读次数:323
《python源码剖析》笔记 python虚拟机中的一般表达式
1.字节码指令 LOAD_CONST:从consts表中读取序号为i的元素并压入到运行时栈中 STORE_NAME:改变local名字空间。从符号表names取序号为i的元素作为变量名, 取运行时栈的栈顶元素作为变量值,完成从变量名到变量值的映射关系的创建。 BUILD_MAP:创建一个空的PyDictObject对象,并压入运行时栈 DUP_TOP:将栈顶元素的引用计数增加1,并将它再次压入栈中 ROT_TWO:将栈顶的两个元素进行对调 LOAD_NAME:符号搜索,并将该元素压入运行时栈 Py...
分类:编程语言   时间:2014-06-18 00:32:18    阅读次数:295
《python源码剖析》笔记 python中的List对象
1.PyListObject对象 --> 变长可变对象,可看作vector typedef struct{ PyObject_VAR_HEAD //其中的ob_size表示实际被使用的内存的数量 PyObject **ob_item;//ob_item为指向元素列表的指针,实际上,Python中的list[0]就是ob_item[0] int allocated;//当前列表中可容纳的元素的总数 } PyList_Type 对象 --> PyListObject的类型对象 ty...
分类:编程语言   时间:2014-06-16 22:48:55    阅读次数:300
《python源码剖析》笔记 Python的编译结果
1.python的执行过程 1)对python源代码进行编译,产生字节码 2)将编译结果交给python虚拟机,由虚拟机按照顺序一条一条地执行字节码,产生执行结果 图7-1 2.Python编译器的编译结果——PyCodeObject对象 Python编译器的编译结果中包含了字符串、常量值、字节码等在源代码中出现的一切有用的静态信息。 在Python运行期间,这些静态信息被PyCodeObject对象中 在Python运行结束后,这些信息会被存储在pyc文件中 PyCodeObject对象和pyc文件是...
分类:编程语言   时间:2014-06-16 22:23:17    阅读次数:228
《python源码剖析》笔记 python中的Dict对象
1.PyDictObject对象 --> C++ STL中的map是基于RB-tree的,搜索时间复杂度是O(logN) PyDictObject采用了hash表,时间复杂度是O(1) typedef struct{ Py_ssize_t me_hash; //me_key的hash值,避免每次查询都要重新计算一遍hash值 PyObject *me_key; PyObject *me_value; }PyDictEntry; 将(key,value)对称为entry,它可以在3种状态...
分类:编程语言   时间:2014-06-16 21:22:45    阅读次数:272
《python源码剖析》笔记 python对象初探
1. 在python中,对象就是为C中的结构体在堆上申请的一块内存。对象不能被静态初始化,也不能在栈空间生存。但内建的类型对象都是被静态初始化的。 2. 对象创建后大小不变。可变对象有一指针指向可变大小的内存区域。 3. 对象机制的基石:PyObject...
分类:编程语言   时间:2014-06-14 10:20:49    阅读次数:309
254条   上一页 1 ... 23 24 25 26 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!