`
jinvasshole
  • 浏览: 802803 次
文章分类
社区版块
存档分类
最新评论

【Python旧时笔记 一】Python对象基础

 
阅读更多

以前写在Evernote上的笔记。

Python对象机制最基础的是PyObject和PyVarObject,而后者又仅仅是比前者多了一个变量而已。
在object.h中有这两者的定义:

typedef struct _object {
PyObject_HEAD
}PyObject;

typedef struct {
PyObject_VAR_HEAD
}PyVarObject;

同一个文件下也定义了相应的两个宏。

可以看出Python中对象的核心在于引用计数ob_refcnt和类型对象ob_type,而可变对象则多了个可变的项的数目ob_size(比如一个list有5个元素)。

这里出现了个新的变量:_typeobject,用来表示对象的类型。

代码的第一行就表示类型对象也是一个可变对象,那么类型对象也应该有类型的,定义在typeobject.c中。

宏PyObject_HEAD_INIT定义在object.h中:

由上,可知对象类型也是一种对象,为PyTypeObject,而类型对象的类型为PyType_Type,最后递归在此。




Python中所有的对象都继承PyObject,内存布局中开头都是PyObject,所以可以通过PyObject *指针来指向所有对象,进行维护、操作。
至于调用类型特有的操作,则通过ob_type这个成员来判断。
这是Python中的继承和多态。



另外一点就是Python的引用计数,管理资源、进行垃圾回收。
Python通过ob_refcnt这个成员来标识该对象被引用了几次,为0时回收。
但是回收并不一定是还给操作系统,而是采用了内存对象池。
其中,类型对象是不被引用计数的。


JasonLee 2011.08.05 0:29


分享到:
评论

相关推荐

    python核心笔记.pdf

    【Python核心笔记】深入浅出地探讨了Python这一强大且多用途的编程语言。Python以其简单易用且功能强大的特性,赢得了广大开发者的喜爱。它是一种解释型的高级编程语言,支持面向对象编程,同时也具备过程化编程的...

    马哥python课堂笔记-马哥教育PYTHON相关基础笔记.pdf

    在马哥教育的PYTHON相关基础笔记中,我们看到几个关键知识点: 1. **推荐书籍**:学习Python时,有几本经典教材值得参考,包括《Python Cookbook》、《Learn Python the Hard Way》、《Google's Python Class》以及...

    Python学习笔记(干货) 中文PDF完整版.pdf

    这份"Python学习笔记"涵盖了从环境搭建到基础语法,再到数据类型和控制结构等关键知识点,旨在为初学者提供全面的学习指导。 首先,1.1章节介绍了Python的基础,包括Python的起源和历史。Python是由Guido van ...

    Python基础笔记(全).pdf

    本笔记涵盖了 Python 语言的基础知识,包括 Python 的特点、解释型语言、面向对象的思维方式、Python 的优缺点、执行 Python 程序的三种方式、变量类型和变量定义等内容。 一、Python 特点 Python 是一种完全面向...

    千峰python课件笔记+源码 (凯哥)

    第一章: 千锋python基础 千锋python基础教程:1、第一个python程序与数据存储 '千锋python基础教程:2、print&input;与变量和运算符' 千锋python基础教程:3、字符串与循环中的while '千锋python基础教程:4、...

    python基础笔记1

    python基础笔记第一份,很不错,这是文档,还会有代码上传

    2024最新版python中j-pythonj基础笔记

    2024最新版python中j_pythonj基础笔记2024最新版python中j_pythonj基础笔记2024最新版python中j_pythonj基础笔记2024最新版python中j_pythonj基础笔记2024最新版python中j_pythonj基础笔记2024最新版python中j_...

    python入门笔记(推荐)

    这篇“Python入门笔记”旨在帮助初学者快速掌握Python的基础知识,通过实践操作来加深理解。 首先,Python的语法特点是它的一大亮点。Python代码强调可读性,遵循“缩进决定代码块”的原则,避免了大括号带来的视觉...

    Python基础笔记

    ### Python基础笔记知识点详解 #### 一、Python简介与计算机基础知识 ##### 1.1 课程目标 - **理解计算机的基本组成**:了解计算机硬件与软件系统的构成。 - **掌握Python语言特点**:认识Python语言的优势及局限...

    Python基础学习整理笔记

    "Python基础学习整理笔记"涵盖了从入门到进阶的多个方面,旨在帮助读者系统地掌握Python的核心概念和技能。 1. **Python语法基础**: - **变量与数据类型**:包括整型(int)、浮点型(float)、字符串(str)和...

    python学习笔记1-(廖雪峰教程,菜鸟教程)python基础.pdf

    这篇学习笔记主要涵盖了Python的基础知识,包括列表(List)、元组(Tuple)、输入与输出、条件语句(If-Else)以及循环结构(For-While)。下面将详细解释这些概念。 1. **列表(List)** 列表是Python中最常用的数据结构...

    疯狂Python讲义笔记 Python基础入门到进阶知识手册 对照原文的笔记 由浅入深 循序渐进的笔记 共197页.pdf

    《疯狂Python讲义笔记》是一本详尽的Python学习指南,涵盖了从基础到进阶的知识点,适合初学者和有一定经验的开发者。笔记内容丰富,包括变量和简单类型、列表、元组和字典、函数和lambda表达式、类和对象、异常处理...

    python学基础笔记

    "Python学基础笔记"涵盖了Python编程的关键概念,包括但不限于数据类型和数字类型,以及标识符的使用规则。以下是对这些核心知识点的详细阐述: 1. **Python数据类型**:在Python中,数据类型是组织和存储数据的...

    2023最新教程【樵夫教你学Python】Python全套教程 Python基础

    Python全套教程 Python基础python基础课代码+文档2023最新教程【樵夫教你学Python】Python全套教程 Python基础python基础课代码+文档2023最新教程【樵夫教你学Python】Python全套教程 Python基础python基础课代码+...

    嵩天老师python基础课程笔记-1.pdf

    【Python基础课程笔记】 在嵩天老师的Python基础课程中,我们首先探讨了程序设计的基本方法。计算机的本质是根据指令操作数据的设备,具备功能性(如数据计算、输入输出处理和结果存储)和可编程性(根据一系列指令...

    python基础笔记.zip

    以上只是Python基础和软件测试自动化的一个概览。深入学习Python,掌握更多的库和框架,如BeautifulSoup(网页抓取),Pandas(数据分析),以及自动化测试工具如Robot Framework,能让你在软件测试领域更加得心应手...

    小甲鱼python教程笔记

    本教程笔记涵盖了 Python 的基础知识点,包括变量、字符串、列表、元组、布尔类型、逻辑运算符、循环结构、列表访问、成员资格运算符、is 运算符、引用和拷贝、列表推导式、元组的使用、字符串的加法和乘法、格式化...

    完整优质版 零基础学Python口袋笔记课件 归纳总结整理手册 Python背记手册 共16份优质文档.rar

    零基础学Python口袋笔记课件 归纳总结整理手册07 第7章 面向对象的程序设计背记手册.pdf 零基础学Python口袋笔记课件 归纳总结整理手册08 第8章 模块背记手册方案.pdf 零基础学Python口袋笔记课件 归纳总结整理手册...

    python基础教程(第三版)学习笔记.pdf

    Python是一种高级编程语言,以其简洁明了的语法和强大的功能...理解这些基础知识是深入学习Python的前提,也是成为熟练Python程序员的第一步。随着对这些概念的熟悉和实践,将能够编写出更复杂、功能丰富的Python程序。

Global site tag (gtag.js) - Google Analytics