cpython 底层实现笔记 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
zpoint
V2EX    Python

cpython 底层实现笔记

  zpoint
zpoint 2019-04-30 16:50:01 +08:00 19876 次点击
这是一个创建于 2405 天前的主题,其中的信息可能已经有所发展或是发生改变。
每个对象都大概配了文字描述和插图, 比如
字典对象实现: https://github.com/zpoint/Cpython-Internals/blob/master/BasicObject/dict/dict_cn.md
整数对象实现: https://github.com/zpoint/Cpython-Internals/blob/master/BasicObject/long/long_cn.md

这是大纲: https://github.com/zpoint/Cpython-Internals/blob/master/README_CN.md
时间充足的话会把勾打完并补充(

写 blog 新手, 如写的不好, 希望能提意见
如有帮助, 可以加个 star
第 1 条附言    2019-08-23 13:40:27 +08:00
91 条回复    2019-08-29 23:44:50 +08:00
1800x
    1
1800x  
   2019-04-30 17:08:08 +08:00   1
已 started
denonw
    2
denonw  
   2019-04-30 17:15:57 +08:00   1
已 star,加油
zpoint
    3
zpoint  
OP
   2019-04-30 18:12:44 +08:00
huagui
    4
huagui  
   2019-04-30 18:41:36 +08:00
强呀
xiexingjia
    5
xiexingjia  
   2019-04-30 19:02:17 +08:00
已 Star
xiexingjia
    6
xiexingjia  
   2019-04-30 19:03:56 +08:00
建议 Cpython --> CPython
zpoint
    7
zpoint  
OP
   2019-04-30 22:12:53 +08:00
@huagui $_$( ⊙ o ⊙ )

@xiexingjia 已 rename, thx
HeavenlyChorus
    8
HeavenlyChorus  
   2019-04-30 23:15:37 +08:00 via Android
资词
toarya
    9
toarya  
   2019-04-30 23:38:44 +08:00 via Android
厉害了
Markbolo126
    10
Markbolo126  
   2019-04-30 23:48:00 +08:00 via iPhone
楼主学 Python 多久了?感觉好厉害
SuperMild
    11
SuperMild  
   2019-04-30 23:53:43 +08:00
@Markbolo126 这个重点应该是 C 语言吧
mseasons
    12
mseasons  
   2019-05-01 09:12:54 +08:00
已 Star
shell314
    13
shell314  
   2019-05-01 09:17:05 +08:00 via Android
很棒,已 star
thechosenone
    14
thechosenone  
   2019-05-01 09:34:26 +08:00
star
bearcarl
    15
bearcarl  
   2019-05-01 10:56:39 +08:00
已 star,加油。
menyakun
    16
menyakun  
   2019-05-01 13:39:44 +08:00
想问一下,这种图是怎么生成的
mseasons
    17
mseasons  
   2019-05-01 17:18:34 +08:00
@menyakun 目测 processon
zpoint
    18
zpoint  
OP
   2019-05-01 18:13:26 +08:00
@HeavenlyChorus thx
@toarya [Facepalm]
@Markbolo126 @SuperMild c 和 python 学的起始时间和进度条差不多, 从上学开始算的话, 上学学的时间到现在 减去 上学荒废的时间 == 四年左右[Facepalm]
@mseasons thx
@shell314 thx
@thechosenone thx
@bearcarl thx
@menyakun @mseasons 对了, 是 processon
zhoudaiyu
    19
zhoudaiyu  
PRO
   2019-05-01 22:37:06 +08:00 via iPhone   1
已 Star,感谢!
zpoint
    20
zpoint  
OP
   2019-05-05 09:42:35 +08:00
ManjusakaL
    21
ManjusakaL  
   2019-05-05 14:00:40 +08:00
很棒
ManjusakaL
    22
ManjusakaL  
   2019-05-05 14:03:24 +08:00
不过如果时间够的话,可以再写写部分为什么这么设计,比如 Dict 中 dummy 这样的状态存在意义之类的
zpoint
    23
zpoint  
OP
   2019-05-05 20:35:38 +08:00   1
@ManjusakaL 好的,谢谢 O(∩_∩)O
necomancer
    24
necomancer  
   2019-05-07 17:43:48 +08:00
真学 python ....
zpoint
    25
zpoint  
OP
   2019-05-08 11:27:01 +08:00
locoz
    26
locoz  
   2019-05-08 18:05:40 +08:00
大佬牛逼
ddzzhen
    27
ddzzhen  
   2019-05-08 18:39:13 +08:00 via Android
已 star,方便我等菜鸟
chiu
    28
chiu  
   2019-05-08 18:48:36 +08:00 via Android
支持
0ZXYDDu796nVCFxq
    29
0ZXYDDu796nVCFxq  
   2019-05-08 18:50:11 +08:00 via Android
硬核
dtjydsre
    30
dtjydsre  
   2019-05-08 19:27:48 +08:00
已 Star
OakScript
    31
OakScript  
   2019-05-08 19:29:56 +08:00
先 star 为敬
ech0x
    32
ech0x  
   2019-05-08 19:47:13 +08:00
我突然想起一本咕了很久的书…… 好东西,star。
shenxgan
    33
shenxgan  
   2019-05-08 20:04:45 +08:00 div class="sep5">
支持,已 star
Ahs
    34
Ahs  
   2019-05-08 21:31:59 +08:00 via Android
先 star 为敬
junnplus
    35
junnplus  
   2019-05-09 00:06:31 +08:00
zpoint
    36
zpoint  
OP
   2019-05-09 09:58:51 +08:00
@locoz
@ddzzhen thx
@chiu thx
@gstqc thx
@dtjydsre thx
@whenhow94 thx
@ech0x thx
@shenxgan thx
@Ahs thx

@junnplus 收藏了
dinjufen
    37
dinjufen  
   2019-05-09 10:00:45 +08:00
正好我也在看,学习下哈
dinjufen
    38
dinjufen  
   2019-05-09 10:01:36 +08:00
那本《 Python 源码剖析》太不清晰了,看的很难受
zpoint
    39
zpoint  
OP
   2019-05-09 15:56:34 +08:00
ManjusakaL
    40
ManjusakaL  
   2019-05-09 18:26:48 +08:00
@junnplus 膜 jun 老师
td width="48" valign="top" align="center">robinlovemaggie
    41
robinlovemaggie  
   2019-05-20 11:42:49 +08:00
支持一波学院派,这点真真的很 Samwell~
xavier007
    42
xavier007  
   2019-05-20 11:47:16 +08:00
不忍打破 250,但是还是狠了狠心
lrxiao
    43
lrxiao  
   2019-05-20 13:59:27 +08:00
建议看完 repo 还是得吧 Python2.6 源码解析和 Inside Python Virtual Machine 看一遍
quanjw
    44
quanjw  
   2019-05-20 15:51:29 +08:00
295star
zpoint
    45
zpoint  
OP
   2019-05-20 17:39:15 +08:00
@robinlovemaggie thanks
@xavier007 (*`)
@lrxiao (⊙o⊙)
@quanjw (*`)
tinkerer
    46
tinkerer  
   2019-05-20 18:54:52 +08:00
starred.
BIAOXYZ
    47
BIAOXYZ  
   2019-05-20 22:46:47 +08:00
挺用心的,支持了~
zpoint
    48
zpoint  
OP
   2019-05-21 10:44:46 +08:00
@tinkerer thanks
@BIAOXYZ thanks(ω)
chenxinqun
    49
chenxinqun  
   2019-05-22 10:07:16 +08:00
好文! 363star
itwhat
    50
itwhat  
   2019-05-27 13:57:46 +08:00
已 star,
foxyier
    51
foxyier  
   2019-05-29 16:17:41 +08:00
已 star,666
zpoint
    52
zpoint  
OP
   2019-06-04 10:09:06 +08:00
wsgws
    53
wsgws  
   2019-06-04 10:34:42 +08:00 via iPhone
好文,forked
berry10086
    54
berry10086  
   2019-06-04 10:35:59 +08:00
请问楼主图片是用什么软件画的
86091566
    55
86091566  
   2019-06-04 11:00:30 +08:00
同问楼主图片是用什么软件画的
zpoint
    56
zpoint  
2019-06-04 12:09:13 +08:00
@wsgws thanks
@berry10086 @86091566 ProcessOn (^o^)
86091566
    57
86091566  
   2019-06-04 13:28:50 +08:00
已 star,持续关注中
zpoint
    58
zpoint  
OP
   2019-06-04 15:48:53 +08:00
@86091566 (ω)
Harz
    59
Harz  
   2019-06-13 11:03:46 +08:00
已 star 支持
forever139
    60
forever139  
   2019-06-13 14:12:44 +08:00
不错,支持。
hjq98765
    61
hjq98765  
   2019-06-13 14:37:34 +08:00
学习了!已 Star
jamesliu96
    62
jamesliu96  
   2019-06-13 14:52:25 +08:00 via Android
真好
zpoint
    63
zpoint  
OP
   2019-06-13 18:36:49 +08:00
ruyuejun
    64
ruyuejun  
   2019-06-21 16:48:52 +08:00
不错
crudboy
    65
crudboy  
   2019-06-21 17:38:18 +08:00
学习了
lCC1984
    66
lCC1984  
   2019-07-03 13:02:19 +08:00
刚刚接触 python 看不懂。。 还是先 shoucang 一下~ 改天学到一定程度了回来看嘻嘻
chaleaochexist
    67
chaleaochexist  
   2019-07-03 14:11:36 +08:00
牛逼,做了我一直想做而没能力做的.
boywhp
    68
boywhp  
   2019-07-11 16:35:46 +08:00
秒了 V2 一大波人了, 不得不说,看源码是提升自身水平的最快途径
telnetning
    69
telnetning  
   2019-07-16 19:39:57 +08:00
厉害!已 Star,向楼主学习,多谢楼主分享!
zpoint
    70
zpoint  
OP
   2019-07-16 21:53:33 +08:00
@ruyuejun @crudboy @lCC1984 谢谢 O(∩_∩)
zpoint
    71
zpoint  
OP
   2019-07-16 22:01:57 +08:00
@chaleaochexist 不同的人技能树不太一样, 花多点时间说不定你可以做的更好
@boywhp [Facepalm] 赞同看源码提升快
@telnetning 相互学习
codepark
    72
codepark  
   2019-07-22 17:39:44 +08:00
战术性收藏~
Ingo
    73
Ingo  
   2019-07-23 09:07:07 +08:00 via iPhone
楼主加油
mattx
    74
mattx  
   2019-07-27 10:47:05 +08:00
star 等做完了, 楼主可以出本书
silencefly
    75
silencefly  
   2019-07-27 17:15:51 +08:00 via iPhone
已 star 支持
rieuse
    76
rieuse  
   2019-07-30 19:16:06 +08:00 via Android
赞~ 非常感谢
b00tyhunt3r
    77
b00tyhunt3r  
   2019-07-30 22:29:49 +08:00 via iPhone
支持,但是本菜鸡想问一下用 python 实现这些有啥实际意义吗?真心请教非杠!!
zpoint
    78
zpoint  
OP
   2019-07-30 23:02:32 +08:00
zpoint
    79
zpoint  
OP
   2019-07-30 23:03:44 +08:00
@mattx 感谢支持, 菜鸡一枚, 没出书水平♂
zpoint
    80
zpoint  
OP
   2019-07-30 23:14:53 +08:00
@b00tyhunt3r 并没有用 python 实现这些结构, 如果你戳的是正文链接的话, 这些结构都是写解释器的人用 C 语言实现, 实现以后你能用解释器去运行 你根据 python 语法 /文档写出的 python 代码

理解这些东西能帮助你写出更高效的代码, 在有对应需求的时候可以自己定制扩展解释器的功能
b00tyhunt3r
    81
b00tyhunt3r  
   2019-07-31 02:06:13 +08:00 via iPad
@zpoint 受教了
iamdaguduizhang
    82
iamdaguduizhang  
   2019-08-01 09:42:18 +08:00
在实力面前,评论区突然变得统一。。
Hstar
    83
Hstar  
   2019-08-05 18:29:46 +08:00
楼主好,基本看完了。
有个小建议,你后期的部分写的比较详细,前面的内容就比较省略了。希望能有一个回头看的机制,再推敲一下以前的内容。
比如 list 对象的 free_list,我看的一头雾水啊。
zpoint
    84
zpoint  
OP
   2019-08-05 18:44:27 +08:00
@iamdaguduizhang 谢谢支持~
zpoint
    85
zpoint  
OP
   2019-08-05 18:44:37 +08:00
@Hstar 谢谢, 刚开始为了让内容看起来比较丰满一点有点赶进度了, 慢工出细活会回头补充一下, 可以关注 issue
aSmallNewbie
    86
aSmallNewbie  
   2019-08-06 09:52:06 +08:00
大佬。。。
dwadewyp
    87
dwadewyp  
   2019-08-21 15:05:20 +08:00
先 star 为敬
334862132
    88
334862132  
   2019-08-21 15:18:09 +08:00
已 star 膜拜大佬
Drahcir
    89
Drahcir  
   2019-08-21 15:50:31 +08:00
终于看到 Python 底层解析了
收藏 + star
ClutchBear
    90
ClutchBear  
   2019-08-23 18:06:37 +08:00
感谢已经 start
zpoint
    91
zpoint  
OP
   2019-08-29 23:44:50 +08:00
@aSmallNewbie 不是大佬♂谢谢支持
@dwadewyp 谢谢(ω)
@334862132 谢谢支持 不是大佬哈♂
@Drahcir Thanks(ω)
@ClutchBear 谢谢!
关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2503 人在线   最高记录 6679       Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 29ms UTC 04:12 PVG 12:12 LAX 20:12 JFK 23:12
Do have faith in what you're doing.
ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86