Created with Sketch.
Created with Sketch.
首页
发现
小书
登录
注册
×
注册小专栏
通过微信登录
通过微博登录
通过Github登录
通过邮箱
注册
、
登录
友情提示
Login FAQ
.
×
邮箱登录
通过微信、微博、Github 登录
登录
×
邮箱注册
通过微信、微博、Github 登录
注册
icon_photo_1
Created with Sketch.
satanwoo
淘宝工程师
100 / 140
淘宝工程师
关注 0
被关注 332
获得赞 239
Created with Sketch.
Created with Sketch.
Created with Sketch.
Created with Sketch.
Created with Sketch.
Created with Sketch.
+ 关注
取消
确定
个人书籍
个人专栏
Python 剖析
随着数据挖掘、机器学习、区块链等技术的不断发展,Python在编程语言界的排名和地位也直线上升。 加之其可扩展性...
已发表 34
订阅数 690
LLDB核心内幕
你还在使用 printf/NSLog 大法进行调试吗? 你还在对不具备源码的程序逆向一筹莫展吗? 那么,高效掌握...
已发表 6
订阅数 192
WWDC20 内参
一年一度的 WWDC 又来啦!今年一共会有 120 个 Sessions 内容,我们将集结老司机 iOS 周报、知...
已发表 109
订阅数 2449
iOS 面试指南2019版
每个公司都会因为产品形态不一样,对工程师的技术要求的侧重点会不一样,iOS 面试指南是来自一线互联网公司工程师对自...
已发表 21
订阅数 1832
文章
订阅
回复
喜欢
satanwoo
in
Python 剖析
番外:从 Reload 谈谈 Python 的 Package / Module 加载与缓存
番外:从 Reload 谈谈 Python 的 Package / Module 加载与缓存 熟悉 Python 的人可能知道,Python 其实本质上还是们解释性的语言,只不过通过在真正解释前会执行下所谓的编译流程,使得纯文本的代码变成了结构化...
satanwoo
in
Python 剖析
Python的Package与Module
Python的Package与Module 在上文《Python中import机制的实现原理》上中,我们没有针对load_next和get_parent展开。本文就从这两个函数展开,引出两个重要的概念:Package和Module。 从lib文件夹说起 了解Python的读者都知...
satanwoo
in
Python 剖析
Python中import机制的实现原理(一)
Python中import机制的实现原理(一) 提起python,不得不提的就是它丰富的生态。不仅有内置的模块,如sys,也有强大的业界扩展,如scikit或者numpy。而这些强大的工具能力,仅仅需要通过import xxx这样简单的...
satanwoo
in
Python 剖析
Python的模块实现机制
Python的模块实现机制 使用过Python的同学相信除了被Python简洁的语法使用方式(比如没有恼人的指针)所吸引之外,选择Python的一大原因就是其强大的苦。从科学计算numpy到服务器搭建django与flask,可谓你想...
satanwoo
in
Python 剖析
番外:Python字节码的复杂示例
番外:Python字节码的复杂示例 上文中我们讲述了Python字节码的构成,本文通过一个具体复杂的例子来串讲整个流程。 >>> def example(a, b): ... for i in range(a, b): ... print i ... 在上述...
satanwoo
in
Python 剖析
Python的字节码
Python的字节码 在上文《Python的编译:从py到pyc》中,我们提到Python实际上会先将你编写的程序编译成平台无关的字节码,今天我们就来深入探讨这个字节码。 字节码种类 以我们当前研究的Python 2.7.x来探讨...
satanwoo
in
Python 剖析
Python的编译:从py到pyc
之前的文章,我们大多数讲了Python文件一步步是如何进行词法分析、文法定义、语法分析以及具体的实现方式。 今天我们来谈谈Python编程中一个一直被人忽略的部分:Pyc Python是不是解释型语言 从定义上...
satanwoo
in
LLDB核心内幕
断点调试的实现原理
断点调试的实现原理 对于经常使用LLDB的朋友来说,breakpoint系列的指令肯定是耳熟能详的,常见的有对地址或者函数符号下断点等等。 但是在这表象背后,究竟断点调试的逻辑是如何实现的?可能绝大多...
satanwoo
in
Python 剖析
Python 与 DFA
DFA 在上次我们阐述的《Python的抽象语法树(二)》的文末,我们提及了DFA,这是一个非常庞大的话题,本文会试着用简洁的例子和语句去阐述他和构建语法树之间的关系。 DFA、NFA与正则文法 DFA,全文解释...
satanwoo
in
Python 剖析
Python的抽象语法树(二)
Python的抽象语法树(二) 在之前的Python 的抽象语法树(一),我们阐述了一个字符串表达式是如何按照Python的文法定义生成对应的抽象语法书的。 今天我们就借助一个简单的小例子,来感受下Python生成抽...
satanwoo
in
LLDB核心内幕
LLDB 整体架构
LLDB 整体架构 NJ大佬在上文《apropos 命令与其实现原理》提及了命令,apropos。从中我们不难窥探一些LLDB的设计思路。 今天,我们正式扬帆起航,从LLDB的整体架构说起,来探究下的LLDB的核心内幕。 LLDB本...
satanwoo
in
Python 剖析
番外:一文看懂 PyObject 和 PyTypeObject
之前有读者朋友觉得Python 对象与类有点没看懂。 因此我今天通过PPT画了几幅图,希望能帮助读者朋友们更好的理解相关内容:
satanwoo
in
LLDB核心内幕
使用 Xcode 构建 LLDB 源码
看到标题是不是感觉这文章有什么好写的? 但是仔细看哦,是使用Xcode调试LLDB,而不是在Xcode中使用LLDB。 换句话说,我们是用Xcode中的LLDB去调试通过源码构建的LLDB程序。 今天我们就来摸索下这整个过...
satanwoo
in
Python 剖析
Python 的抽象语法树(一)
Python的抽象语法树(一) 之前三章的内容,我们分别谈及了语法分析中涉及到的文法定义、文法分析以及消除左递归等内容。 今天我们来谈谈语法分析的另一大部分内容:抽象语法树。 抽象语法树 简单...
satanwoo
in
Python 剖析
Python语法分析(三)
Python语法分析(三) 上文的最后,我们提到了Python的语法描述里面定义了很多实际编程中无法感知的“中间形式”。今天我们就接着这个问题继续探讨Python的语法分析。 BNF 在研究我们问题之前,我们需要...
satanwoo
in
Python 剖析
番外:PyBaseObject_Type继承流程
番外:PyBaseObject_Type继承流程 本文算是一个番外补充篇 之前有读者朋友反馈在阅读外《Python 对象与类》之后有点迷糊,不知道PyBaseObject_Type是个啥。 同时有认真的读者阅读了CPython中的代码,发现PyInt_Ty...
satanwoo
in
iOS 面试指南2019版
技术人的成长
序 上次桦总邀请我让我写一篇关于面经方面的文章,我答应了。但是仔细一想,其实我最近三个月也就帮别人交叉面试过一人,同时自身也没跳槽的打算去面试。加上我看小专栏上诸如《XXX公司面试题》...
satanwoo
in
Python 剖析
Python的语法分析(二)
Python的语法分析(二) 上文我们讲述了4种文法的定义和对应的限制,并大致浏览了Python语法的文法定义(如下节选),今天就让我们一起来探究一下,这些文法定义是如何得出的。 atom_expr: ['await'] atom trailer...
satanwoo
in
Python 剖析
Python的语法分析(一)
Python的语法分析(一) 老铁们对不住,最近太忙了,恢复更新了 上次我们分析完了Python的词法分析部分,今天让我们进入下一个大的板块:Python的语法分析。 在进入语法分析前,我们首先要了解清楚...
satanwoo
in
Python 剖析
Python的词法分析三
Python的词法分析三 这篇是最后一篇讲词法分析了,如果再看不懂,就略过吧。 在《Python的词法分析》的文末,我们提及了Python所有词法单元的定义都在token.h里面,限于篇幅,我们来感受下Python中是怎么...
satanwoo
in
Python 剖析
Python 词法分析(二)
Python 词法分析(二) 上周写了初步词法分析生成涉及的数据结构以及对应产生的Token,但是有些同学反馈直接上手有点复杂,因此我决定今天先补充一章节,脱离Python的前提,谈谈词法分析该过程本身。 ...
satanwoo
in
Python 剖析
Python的词法分析
吐槽:出的题目没有大佬做吗?俺很伤心哇 从本周开始我们正式进入Python的编译和解释环节。今天我们先来谈谈Python运行环节前的词法执行环节。 由于这部分开始都比较复杂,我会采用实际的例子来...
satanwoo
in
Python 剖析
本周太忙,《Python剖析》暂停更新一周
如标题,下周恢复正常。
satanwoo
in
Python 剖析
《Python剖析》第一阶段有奖问答
从6月份开始写第一篇《Python剖析》开始,已经坚持了3个月左右了。订阅者也从0到了现在超过300多人。 我希望大家订阅我的专栏是真的有所收获,而不是像买书积灰一样浪费,毕竟再少的钱都来之不易。...
satanwoo
in
Python 剖析
Python中的元组对象
Python中的元组对象 终于即将进入到Python对象的最后一个章节了。我们来谈谈Python中一个比较有意思的对象,元组。 很多编程语言里面都没有默认提供元组的实现,因此我们常常需要利用数组或者结构体甚...
satanwoo
in
Python 剖析
Python字典对象的搜索过程及优化
Python字典对象的搜索过程及优化 上周我们探讨了《Python字典对象的实现》,但是还剩下一个比较重要的环节就是Python字典对象搜索的具体过程未能涉及,今天我们就一起来看看搜索过程及其优化的手段。 ...
satanwoo
in
Python 剖析
Python字典对象的实现
上周我们在探讨PyStringObject的优化的过程中接触到了Python中字典对象的实现,因此我们今天就接着这个话题深入探讨下其的具体实现。 熟悉高级编程语言的同学肯定对字典这个数据结构不陌生,比如C++中...
satanwoo
in
Python 剖析
Python的字符串对象优化
上周我们探讨了Python字符串对象的设计,今天我们继续这个话题,来研究下Python中是如何对字符串对象进行优化的。 Python的Intern机制 在上文我们阐述PyStringObject创建过程的时候,我们删除了部分优化的代...
satanwoo
in
Python 剖析
Python的字符串对象
Python的字符串对象题外话 每当我们学习一门新的编程语言的时候,接触到的第一个范例基本都是输出"hello world"。随着学习的深入,我们也逐步了解了各项语言中字符串类型的使用和特性。看起来只是由一...
satanwoo
in
Python 剖析
Python读者群建立 & 目录
读者群 之前有一些读者希望我建立一个《Python剖析》的群,方便大家后续询问问题,长期交流。 因此我建立了一个读者群,所有入群的朋友们请加我的微信@satanwoo,添加的时候请附上订阅的账号名称,我...
satanwoo
in
Python 剖析
内存分配扩张的一点探索
其实本章内容确切的来说和Python并无实质直接联系,但是在上文我们阐述PyListObject的list_resize操作的时候提高了Python的内存分配增长公式,因此我们接着这个话题继续进行研究。 分摊时间复杂度 在上文PyLis...
satanwoo
in
Python 剖析
Python的数组实现细节
Python的数组实现细节 上文Python 的数组实现,我们探讨了PyListObject的数据结构以及对应的迭代器的一些设计思路。 按照惯例,我们这篇文章会继续深挖PyListObject一些巧妙的设计之处,看看Python作者究竟对...
satanwoo
in
Python 剖析
Python 的数组实现
Python的数组实现 之前我们聊了许多关于Python固定对象,比如PyIntObject,PyFloatObject,这种类型的对象在创建完成之后属于不可变对象(当然引用计数等属性除外)。与之对应的,自然而然就有可变对象,今...
satanwoo
in
Python 剖析
浮点数设计及异常原因
浮点数设计及异常原因 上文我们在谈到PyFloatObject的时候,发现其代码实现中有着许多异常捕捉的逻辑,而在之前PyIntObject中却不曾发现。因此我们今天来深挖下浮点数的设计原理,来分析下为什么需要在...
satanwoo
in
Python 剖析
Python的浮点数设计
Python的浮点数设计 上周我们讲完了Python中自身对于int类型的实现,PyIntObject及其类型信息PyInt_Type,那今天我们就赶紧趁热打铁来关注下Python中浮点数的设计。 需要注意的事,Python中的浮点数类型并不会区...
satanwoo
in
Python 剖析
Python 整数对象的内存管理
Python整数的内存管理 上篇文章我们阐述了Python对整数对象的设计后,我们会发现,大量操作后会产生大量的PyIntObject,占据大量的堆空间。更有甚者,当我们试图在诸如for循环之类的操作中快速大量创建临...
satanwoo
in
Python 剖析
Python 的整数设计
Python的整数设计 上一次我们在讲解Python的对象、类的设计的时候,举了大量PyIntObject类型的例子。其实PyIntObject就是我们通常理解的int数据类型。在许多编程语言中,int都是一些基础数据类型(比如C, Objecti...
satanwoo
in
Python 剖析
Python 对象与类
Python源码剖析(一) 之前一直想思考设计一门编程语言,奈何自身的技术实力不到家,因此最近阅读了一些语言的源码设计。在阅读了一些语言的代码实现后,我决定先从模仿开发一款类Python的语言开始...
satanwoo
in
iOS 面试指南2019版
面试前的个人心态
作为一名刚毕业一年多的职场新人,不敢妄谈如何才能100%的让你加入心目中的理想公司。而网上关于面经、面试题目相关的文章也不在少数,因此今天想略微从务虚的角度来聊聊如何在面试前的合理进行...
Created with Sketch.
top
Created with Sketch.