MyCopyistSpace

Python内核源码阅读(十一)

Python内核源码阅读(十一)PyListObject 的定义typedef struct { PyObject_VAR_HEAD /* Vector of pointers to list elements. list[0] is ob_item[0], etc. */ // ob_item 指向 list 的首地址 list[0] == ob_item[0] ...

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

Python内核源码阅读(十)

Python内核源码阅读(十)字符串对象的创建PyObject * //从Unicode字符串创建一个 PyUnicodeObject 对象 PyUnicode_FromUnicode(const Py_UNICODE *u, Py_ssize_t size) { // 建立指定长度的 PyUnicodeObject 对象 if (u == NULL) ret...

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

Python内核源码阅读(九)

Python内核源码阅读(九)正是因为 Python2 的 UnicodeError 让我放弃了它. Python3 就很少遇到了,Python3 原生的支持 Unicode 功劳不少.在 Python3 中默认的字符串采用 Unicode 编码方式,先看一下它的定义.Unicode 字符串有 4 种形式:compact asciicompactlegacy string, not read...

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

Python实现Karatsuba算法

Python实现Karatsuba算法Karatsuba算法是一种快速相乘算法,它由Anatolii Alexeevitch Karatsuba于1960年提出并于1962年发表.经典的乘法要 n^2 次个位数乘法而此算法只需要 3n^1.585Karatsuba的算法主要是用于两个大数的乘法,极大提高了运算效率,相较于普通乘法降低了复杂度,并在其中运用了递归的思想。基本的原理和做法是将位数...

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

Python内核源码阅读(八)

Python内核源码阅读(八)大整数的处理方法在 Python3 中并没有和 Python2的#define BLOCK_SIZE 1000 /* 1K less typical malloc overhead */ #define BHEAD_SIZE 8 /* Enough for a 64-bit pointer */ #define N_INTOBJECTS ((BLOCK_SIZE...

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

Python内核源码阅读(七)

Python内核源码阅读(七)我们在Python内核源码阅读(六)中学到一个 PyLongObject 有那些内置方法, x,obase 不同而分不同情况去创建一个 PyLongObject.PyLong_FromLongPyObject * PyLong_FromLong(long ival) { PyLongObject *v; unsigned long abs_iva...

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

Python内核源码阅读(六)

Python内核源码阅读(六)我们在Python内核源码阅读(三)中学到了,在Python3 中一个 PyLongObject 的存储方式.今天会更加深入的了解 PyLongObject.PyLongObject 内置方法PyTypeObject PyLong_Type = { PyVarObject_HEAD_INIT(&PyType_Type, 0) "...

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

Python 内核源码阅读(五)

Python 内核源码阅读(五)对象的行为在Python 内核源码阅读(三)中我们了解到在 PyTypeObject 中定义了大量的函数指针,这些函数指针最终指向某个函数或者指向 NULL. 这些函数指针可以视类型对象所定义的操作,这些操作直接决定着一个对象在运行时所表现出的行为.PyTypeObject 中 tp_hash 指明该类型的对象如何生成 hash 值. tp_hash 的类型 ...

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

Python 内核源码阅读(四)

Python 内核源码阅读(四)PyLongObject我们知道在 Python3 中 取消了 PyIntObject 用 PyLongObject 取代,我们通过一张图来看一下 PyLongObject 的结构.在以前的文章最后我也贴过 PyLongObject 的代码这里就要正式的分析一下这个代码. [longobject.h] /* Long (arbitrary precision)...

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

Flask_wtf_FieldList_使用总结

Flask_wtf_FieldList_使用总结Flask 的其他文档挺多的,我在用 Flask 遇到问题的时候文档都可以明确的找到,但是唯独我用 FiledList 的时候文档写的很模糊, 没有说明我要具体怎么用, 文档只说了如何定义.要想用到自己的项目中的话,他们之间还是有一点差距的, 从网上查的东西也是零零碎碎的.没有办法通过自己摸索解决了这个问题.问题说明使用 Flask-wtf 写...

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

Python 内核源码阅读(三)

Python 内核源码阅读(三)定长对象与变长对象在 C 语言中, 整型所占用的内存大小是固定的,无论你保存的是多少.由于 C 没有字符串类型,因此要表示一个字符串只能用字符数组表示,在 Python 中用如下的方式来表示一个字符串.[object.h] typedef struct { PyObject ob_base; Py_ssize_t ob_size; /* Num...

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

Archlinux_RK61 蓝牙键盘填坑记

Archlinux_RK61 蓝牙键盘填坑记当初在网上,看到这个双模蓝牙键盘挺便宜的,就买了...... 由于我自己一直都是使用 Linux ,而他们只保证在 安卓,ios,macos,windows 上面能够很好的使用.拿回来以后发现蓝牙一直有如下问题:开机不能自动连接连接后不能输入(ps:时间证明这个 BUG 是 kde 蓝牙前端的锅)fn+num 不可以使用解决以上的问题开机不能自动连...

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