本文简书地址:http://www.jianshu.com/p/763f6cec7a9b

工作整两年了,用python最多,然而对于python内部机制不一定都清楚,每天沉醉于增删改查的简单逻辑编写,实在耗神。很多东西不用就忘记了,比如C语言,正好,python源码用C写的,分析python源码的同时又能温故C语言基础,实在是件很好的事情。另外,还有陈儒大神的《python源码剖析》做指引,分析也不至于没头没脑。期望在一个月的业余时间,能有所小成,以此为记。

1 python中的对象

python中,一切东西都是对象,在c语言实现中对应着结构体。首先当然还是从python内建对象开始看起,最基本的是PyIntObject, PyStringObject, PyListObject, PyDictObject这几个,他们分别属于int,string, list, dict类型。从python2.2之后有了new style class之后,这些内置对象都是继承自object类型,object在代码中对应PyBaseObject_Type。比如我们赋值语句a=3,那么a就是一个PyIntObject对象,它的类型是int,在代码中对应PyInt_Type,PyInt_Type也是一种对象,我们称之为类型对象。那么PyInt_Type它的类型是什么呢,答案是type, 对应到代码中就是PyType_Type。当然object也是一个类型对象,它的类型也是PyType_Type。这么一层层下去,PyType_Type也是个对象,那它的类型又是什么呢,没错,答案就是它的类型就是它自己,。看下面的验证代码:

##内建对象测试
In [1]: a = 3In [2]: type(a)
Out[2]: intIn [3]: type(int)
Out[3]: typeIn [4]: type(type)
Out[4<

python源码剖析笔记1——Python对象初见相关推荐

  1. Python源码剖析2-字符串对象PyStringObject

    二. 1.PyStringObject与 PyString_Type PyStringObject是变长对象中的不可变对象.当创建了一个PyStringObject对象之后,该对象内部维护的字符串就不 ...

  2. Python源码剖析笔记5-模块机制

    本文简书地址: http://www.jianshu.com/p/14586ec50ab6 python中经常用到模块,比如import xxx,from xxx import yyy这样子,里面的机 ...

  3. Python源码学习笔记:Python程序执行过程与字节码

    Python程序执行过程与字节码 注:本篇是根据教程学习记录的笔记,部分内容与教程是相同的,因为转载需要填链接,但是没有,所以填的原创,如果侵权会直接删除. 问题: 我们每天都要编写一些Python程 ...

  4. Python源码剖析[1] —— 编译Python

    [ 绝对原创,转载请注明出处] 注意 :第一部分Python总体架构采用了网络文档<The Architecture of Python>,这是网络上唯一可见的以剖析Python实现为己任 ...

  5. 《Python源码剖析》读书笔记

    <Python源码剖析>电子书下载 http://download.csdn.net/detail/xiarendeniao/5130403 Python源码在官网有下载链接,用ctags ...

  6. python源码剖析—— python中的列表对象

    1. PyListObject对象 PyListObject 对象可以有效地支持插入,添加,删除等操作,在 Python 的列表中,无一例外地存放的都是 PyObject 的指针.所以实际上,你可以这 ...

  7. python源码剖析—— python中的字节码对象初探

    一.代码对象 每个初学python的人都会认为python是一种解释型语言,这个不能说错.但是python并不是真的对执行的python代码的每一行进行解释,虽然我们有一个所谓的"解释器&q ...

  8. python源码剖析代码例子_Python源码剖析笔记5-模块机制

    python中经常用到模块,比如import xxx,from xxx import yyy这样子,里面的机制也是需要好好探究一下的,这次主要从黑盒角度来探测模块机制,源码分析点到为止,详尽的源码分析 ...

  9. Python猫荐书系统之四:《Python源码剖析》

    大家好,新一期的荐书栏目如期跟大家见面了. 先来看看今天的主角是谁:<Python源码剖析--深度探索动态语言核心技术>,2008年出版,作者 @陈儒 ,评分8.7分. 是的,你没看错,出 ...

最新文章

  1. 三十张图片让你彻底弄明白图的两种遍历方式:DFS和BFS
  2. python 反向传值_Django中reverse反转并且传递参数的方法
  3. 一个项目搞定支付宝,微信支付!
  4. Python编码规范:IF中的多行条件
  5. 小数 ###_C#中的小数关键字
  6. g2o求解BA 第10章
  7. Replace Method with Method Object(以函数对象取代函数)
  8. Mysql中外键的 Cascade ,NO ACTION ,Restrict ,SET NULL
  9. uniapp Android离线打包Activity class {com.xxx.yyy/io.dcloud.PandoraEntry} does not exist.
  10. 【读书笔记】《梁宁·产品思维三十讲》——产品经理人生规划修心课
  11. STL-关联式容器 map
  12. iptv鉴权 php,小白的IPTV折腾教程-双网融合/IPTV共享 - OPENWRT专版 - 恩山无线论坛 - Powered by Discuz!...
  13. 2021深圳杯东三省建模
  14. python中print打印输出
  15. 仿百思不得其姐项目开发(粗略笔记,后期规范排版和更新)
  16. 微信小程序实现图片文字识别提取
  17. 基于ArduinoNano的LED点阵时钟探索(1)四合一MAX7219+DS3231
  18. MASA MAUI Plugin (十)iOS消息推送(原生APNS方式)
  19. 74LS273 八D型触发器 功能介绍
  20. 二阶RC锂电池模型simulink模型

热门文章

  1. UCML--编译型应用框架快速开发工具体系介绍
  2. 获取Simulink模型的版本
  3. 深度学习笔记004-计算机视觉CV的发展历程
  4. bugku ctf md5 collision(NUPT_CTF)
  5. 网页设计浮动和定位小总结
  6. 【通知】▁▂▃ Himi 著作《Android游戏编程之从零开始》★书籍源码+第4/6/7样章★博客系列源码整理打包-免费下载★ ▃▂▁
  7. 详解为什么32位系统只能用4G内存
  8. 云上机器CLOSE_WAIT过多的原因和解决办法
  9. 地理信息系统(GIS)基本概念
  10. 正则表达式(各语言通用)