python源码剖析笔记1——Python对象初见
本文简书地址: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对象初见相关推荐
- Python源码剖析2-字符串对象PyStringObject
二. 1.PyStringObject与 PyString_Type PyStringObject是变长对象中的不可变对象.当创建了一个PyStringObject对象之后,该对象内部维护的字符串就不 ...
- Python源码剖析笔记5-模块机制
本文简书地址: http://www.jianshu.com/p/14586ec50ab6 python中经常用到模块,比如import xxx,from xxx import yyy这样子,里面的机 ...
- Python源码学习笔记:Python程序执行过程与字节码
Python程序执行过程与字节码 注:本篇是根据教程学习记录的笔记,部分内容与教程是相同的,因为转载需要填链接,但是没有,所以填的原创,如果侵权会直接删除. 问题: 我们每天都要编写一些Python程 ...
- Python源码剖析[1] —— 编译Python
[ 绝对原创,转载请注明出处] 注意 :第一部分Python总体架构采用了网络文档<The Architecture of Python>,这是网络上唯一可见的以剖析Python实现为己任 ...
- 《Python源码剖析》读书笔记
<Python源码剖析>电子书下载 http://download.csdn.net/detail/xiarendeniao/5130403 Python源码在官网有下载链接,用ctags ...
- python源码剖析—— python中的列表对象
1. PyListObject对象 PyListObject 对象可以有效地支持插入,添加,删除等操作,在 Python 的列表中,无一例外地存放的都是 PyObject 的指针.所以实际上,你可以这 ...
- python源码剖析—— python中的字节码对象初探
一.代码对象 每个初学python的人都会认为python是一种解释型语言,这个不能说错.但是python并不是真的对执行的python代码的每一行进行解释,虽然我们有一个所谓的"解释器&q ...
- python源码剖析代码例子_Python源码剖析笔记5-模块机制
python中经常用到模块,比如import xxx,from xxx import yyy这样子,里面的机制也是需要好好探究一下的,这次主要从黑盒角度来探测模块机制,源码分析点到为止,详尽的源码分析 ...
- Python猫荐书系统之四:《Python源码剖析》
大家好,新一期的荐书栏目如期跟大家见面了. 先来看看今天的主角是谁:<Python源码剖析--深度探索动态语言核心技术>,2008年出版,作者 @陈儒 ,评分8.7分. 是的,你没看错,出 ...
最新文章
- 三十张图片让你彻底弄明白图的两种遍历方式:DFS和BFS
- python 反向传值_Django中reverse反转并且传递参数的方法
- 一个项目搞定支付宝,微信支付!
- Python编码规范:IF中的多行条件
- 小数 ###_C#中的小数关键字
- g2o求解BA 第10章
- Replace Method with Method Object(以函数对象取代函数)
- Mysql中外键的 Cascade ,NO ACTION ,Restrict ,SET NULL
- uniapp Android离线打包Activity class {com.xxx.yyy/io.dcloud.PandoraEntry} does not exist.
- 【读书笔记】《梁宁·产品思维三十讲》——产品经理人生规划修心课
- STL-关联式容器 map
- iptv鉴权 php,小白的IPTV折腾教程-双网融合/IPTV共享 - OPENWRT专版 - 恩山无线论坛 - Powered by Discuz!...
- 2021深圳杯东三省建模
- python中print打印输出
- 仿百思不得其姐项目开发(粗略笔记,后期规范排版和更新)
- 微信小程序实现图片文字识别提取
- 基于ArduinoNano的LED点阵时钟探索(1)四合一MAX7219+DS3231
- MASA MAUI Plugin (十)iOS消息推送(原生APNS方式)
- 74LS273 八D型触发器 功能介绍
- 二阶RC锂电池模型simulink模型
热门文章
- UCML--编译型应用框架快速开发工具体系介绍
- 获取Simulink模型的版本
- 深度学习笔记004-计算机视觉CV的发展历程
- bugku ctf md5 collision(NUPT_CTF)
- 网页设计浮动和定位小总结
- 【通知】▁▂▃ Himi 著作《Android游戏编程之从零开始》★书籍源码+第4/6/7样章★博客系列源码整理打包-免费下载★ ▃▂▁
- 详解为什么32位系统只能用4G内存
- 云上机器CLOSE_WAIT过多的原因和解决办法
- 地理信息系统(GIS)基本概念
- 正则表达式(各语言通用)