分类 Python 下的文章

Python内核源码阅读(二十四)

Python内核源码阅读(二十四)虚拟机产生异常及捕获我们下面要研究的就是 1/0 这个计算过程中是如何将 ZeroDivisionError 抛出的.>>> x = "1/0" >>> from dis import dis >>> dis(x) 1 0 LOAD_CONST ...

admin@copie.cn 2018 年 06 月 06 日 暂无评论

Python内核源码阅读(二十三)

Python内核源码阅读(二十三)Python 虚拟机中的 for 循环控制流我不应该跟着 cpython 的官方库去看的,赶脚自己就是铁头娃和填坑侠.>>> x = "for i in (1, 2):\n print(i)" >>> dis(x) 1 0 LOAD_CONST ...

admin@copie.cn 2018 年 06 月 05 日 暂无评论

Python内核源码阅读(二十二)

Python内核源码阅读(二十二)Python 虚拟机中的 if 控制流a = 1 if a > 10: print("a > 10") elif a < -2: print("a < -2") elif a == 1: print("a == 1") else: print(...

admin@copie.cn 2018 年 06 月 02 日 暂无评论

Python内核源码阅读(二十一)

Python内核源码阅读(二十一)内建对象的创建In [2]: dis("a = 1") 1 0 LOAD_CONST 0 (1) 2 STORE_NAME 0 (a) 4 LOAD_CONST 1 (None...

admin@copie.cn 2018 年 06 月 02 日 暂无评论

Python内核源码阅读(二十)

Python内核源码阅读(二十)Python 虚拟机的运行框架Python启动后,首先会进行 Python 运行环境的初始化.运行环境和执行环境不同,运行环境是一个全局的概念,而执行环境是一个栈帧,栈帧和 CodeBlock 对应.待初始化完成后,运行的过程就像多米诺骨牌一样,一环一环地展开.现在假设运行时初始化已经完成,推动第一个骨牌的函数就是 PyEval_EvalFrameEx.PyO...

admin@copie.cn 2018 年 06 月 02 日 暂无评论

Python内核源码阅读(十九)

Python内核源码阅读(十九)PyFrameObjecttypedef struct _frame { PyObject_VAR_HEAD struct _frame *f_back; /* previous frame, or NULL */ // 执行链上的前一个 frame PyCodeObject *f_code...

admin@copie.cn 2018 年 06 月 01 日 暂无评论

Python内核源码阅读(十九)

Python内核源码阅读(十九)PyFrameObjecttypedef struct _frame { PyObject_VAR_HEAD struct _frame *f_back; /* previous frame, or NULL */ // 执行链上的前一个 frame PyCodeObject *f_code...

admin@copie.cn 2018 年 06 月 01 日 暂无评论

Python设计模式-工厂方法

Python设计模式-工厂方法工厂一般分为两种: 一种是工厂方法,还有一种是抽象工厂工厂方法所谓的工厂方法就是,通过调用这个函数,由于参数不相同,会创建不同的对象.(当然这里有人会认为调用后返回一个对象的不是类吗?其实没毛病,不过在Python 里函数是一等公民怎么理解都可以),这些对象有相同的接口.import xml.etree.ElementTree as etree import j...

admin@copie.cn 2018 年 06 月 01 日 暂无评论

Python 属性描述符简单使用总结

Python 属性描述符简单使用总结描述符是对多个属性运用相同的存储逻辑的一种方式.描述符是实现了特定协议的类, 这些协议包括 get__, __set__, __delete 方法.描述符简单使用class Quantity: __counter = 0 def __init__(self): cls = self.__class__ pr...

admin@copie.cn 2018 年 05 月 25 日 暂无评论

Context_Locals_In_Werkzeug

Context_Locals_In_Werkzeug在学习 Flask 的时候.为了看 Flask 上下文环境源码做准备.在上篇 blog 中我们已经看到了 threading.local 的使用.但是 Werkzeug.local.Local 类有一下优点在 Greenlet 可用的情况下优先使用 Greenlet 的 ID 而不是线程的 ID 以支持 Gvent 或者 Eventlet ...

admin@copie.cn 2018 年 05 月 23 日 暂无评论

Python 中 Thread Local 总结

Python 中 Thread Local 总结有时候在多线程程序中,我们需要保存专属于当前运行线程的状态.为了做到这一点,可以通过 threading.local() 来创建一个线程本地存储对象,在这个对象上保存和读取的属性对当前运行的线程可见, 其他线程无法感知.Thread Localimport threading from functools import partial from...

admin@copie.cn 2018 年 05 月 20 日 暂无评论

WSGI协议的原理及实现

WSGI协议的原理及实现WSGI, 是 Python Web Server Geteway Interface 的简称, 是 web 底层跟 application 解耦的协议. 我们的 web 服务器使用 WSGI 协议来调用 application 称为 WSGI server. 为了各类 web server(apache nginx, IIS) 和 web application(如...

admin@copie.cn 2018 年 05 月 19 日 暂无评论