yyttmonster

悲伤逆流成河

新开始

"做点自己的事情."

尝试重拾我的blog。

往事随风

"记忆之中留下的只有美好."

对于未来的日子,总是伴随着三分期冀、三分忧虑、三分迷茫以及一分喜悦,期冀着完成诸多事,忧虑着未知的苦难,迷茫着做些什么,等到实际经历的时候,却发现一切依旧和往常那些日子一样平常,只是在很久后才惊觉,好像在那些平凡日子中的某天,某个抉择已经改变了往后的路。 研究生的研究呢 研究生开始于为红绿蓝项目的语义分割,清晰地记得那时与老师亲切的交流,表示别人都做好了,为什么还要重复造轮子,这不是有悖...

Some Statements

"Details."

Encoding declarations 如果一条注释位于 Python 脚本的第一或第二行,并且匹配正则表达式 coding[=:]\s*([-\w.]+),这条注释会被作为编码声明来处理,如果它是在第二行,则第一行也必须是注释。若没有编码声明,python2默认编码为ASCII,python3默认编码为UTF-8。encoding-name可参考Codec registry and ...

AVL tree or RB tree or Hash?

"No Silver Bullet"

c++ std::map是由红黑树实现的,对于Hashmap则有另外的std::unordered_map,在python中dict则是由hashmap经由两层映射实现的,那么为什么python中没有使用红黑树呢?两者各自存在何种优势? 红黑树 or AVL 树 红黑树是一颗平衡二叉搜索树,它在每个结点上使用一个标志位来表示结点颜色,通过约束任何一条从根到叶子结点路径上各结点颜色来实现树...

Function Object

"Function objects are created by function definitions. The only operation on a function object is to call it: func(argument-list)."

借鉴于《Python源码剖析 陈儒》、python/cpython v3.70 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段,函数机制使得我们能够实现功能分解,代码复用等目标。 PyFunctionObject与PyCodeObject // Include/funcobject.h typedef struct { PyObject_HEAD //...

Dict Object

"A mapping object maps hashable values to arbitrary objects."

借鉴于《Python源码剖析 陈儒》、flaggo/python3-source-code-analysis、python/cpythonv3.70 Dict是一种提供关联关系的可变容器,在python中由于PyDictObject对象本身在python的实现时被大量使用,需要极其苛刻的搜索效率,因此使用负载因子为2/3的hash table来实现dict(开放定址法解决冲突),而在c++...

List Object

"Lists are mutable sequences, typically used to store collections of homogeneous items (where the precise degree of similarity will vary by application)."

借鉴于《Python源码剖析 陈儒》及python/cpythonv3.70 list是python中的一类基础数据结构,它有效的支持元素的插入、添加、删除等操作,并且在python中,list的元素可以是任何类型的数据,因为它存储的都是PyObject*指针。 PyListObject typedef struct { // Include/listobject.h ...

"忿而不怒."

都是第一次做人,在这片我自己的天地里,没人有资格在我心情低落时,还要求我不要自怨自艾,要正能量,除了我自己,的确,情绪的压抑都是自己给自己的,与他人无关。各种大道理响彻耳边,但在此刻的前提假设下,全是胡扯。 学业 有时自认为永不后悔,觉得哪怕重来,在已有人生经历、知识背景等条件下所做出的选择依旧是不会改变的,但此刻我依旧心存悔意。过去多年来,遇到的老师都是对我人生轨迹产生好的影响的,或者...

String Object

"Strings are immutable sequences of Unicode code points."

借鉴于《Python源码剖析 陈儒》及[python/cpython](https://github.com/python/cpython/blob/v3.7.0/Objects/unicodeobject.c v3.70 string 是一个常见的数据类型,它与bytes对象密切相关。python3中使用text和binary data来替代unicode字符串和普通字符串,分别对应st...

Python Object

"Everything is an object."

借鉴于《Python源码剖析 陈儒》及python/cpython v3.70 python中一切都是对象,整数、字符串以及函数、类型都是对象。(对象是数据以及基于这些数据的操作的集合;对象是堆中分配的结构 - Objects are structures allocated on the heap)因此它们都可以赋值给一个变量,可以当作参数传递给一函数,可以作为一个函数的返回值,还可以作...