(Python学习1) Python对象初探
来源:互联网 发布:脑死亡有奇迹吗 知乎 编辑:程序博客网 时间:2024/06/01 19:31
跟着《Python源码剖析》,一方面学习python,另一方面学习C。
简单记录,以框架为主,以防忘记。
------------------------------------------------------------------------------------------
1、Python一切为对象,内置类型,自建类,函数,模块,甚至运行时环境……
2、一切对象都含有的基础对象:
其实以 #define PyObject_HEAD …… 定义而出
typedef struct _object { int ob_refcnt; // 引用计数 struct _typeobject *ob_type; // 类型指针} PyObject;
变长对象
其实以 #define PyObject_VAR_HEAD …… 定义而出
typedef struct _object { int ob_refcnt; struct _typeobject *ob_type; int ob_size; // 对象大小} PyObject;
对象的类型 -- ob_type指针所指向的
typedef struct _typeobject { PyObject_VAR_HEAD const char *tp_name; // 存储类型名 …… hashfunc tp_hash; // hash函数指针 ……} PyTypeObject;
3、对象与对象的类型
整数对象可定义如下
typedef struct _intobject {PyObject_HEADlong ival; // 存储的实际值} PyIntObject;通过上述结构体可定义出如下实体
PyTypeObject PyType_Tpye; // 类型的类型PyTypeObject PyInt_Tpye; // 整数的类型PyIntObject Int_A; // 一个整数对象相互关系如下
使Int_A的ob_type指向PyInt_Type,便可实现面向对象的功能。Int_A.ob_type.tp_hash可以调用Int的hash函数。同样的,若是String_A的ob_type指向PyString_Type,
String_A.ob_type.tp_hash可调用String的hash函数,也就实现了多态。
由于PyInt_Type也是一种对象,令其ob_type指向PyType_Type,PyType_Type的ob_type指向自身。
- (Python学习1) Python对象初探
- python面向对象初探
- 《python源码剖析》笔记 python对象初探
- Python源码剖析(02 Python对象初探)
- Python学习之分布式进程初探(1)
- 初探python学习笔记一
- python学习之--Django初探
- python学习(一)之初探
- python 结巴分词学习初探
- 初探Python(1)
- Python学习笔记1--运行Python&&python对象类型介绍
- Python初探
- Python初探
- python 初探
- Python 初探
- Python初探
- Python初探
- 初探python
- Linux机器系统时间out of range
- Linux 下zip包的压缩与解压
- 机器学习算法与中国文化
- eas 中由 ssl.c 文件中 SSL_close_all 引发的 bug
- 给程序员新手的一些建议
- (Python学习1) Python对象初探
- HTML文档对象的事件以及addEventListener与attachEvent介绍
- 安卓中ELF文件格式的几点总结
- 如何让你的作业在Hadoop集群中真正实现分布式运行?
- HashSet与TreeSet的介绍
- Android的3D旋转
- window rsync server 安装使用
- iPhone KVO、KVC、KVB介绍
- Quartz CronTrigger最完整触发时间配置说明