目录
百战程序员,全站22050+开发课程+文档 ,学习精选优质好课快人一步!观看视频 快捷键ALT+N

Python全系列 教程

3567个小节阅读:5931k

收藏
全部开发者教程

鸿蒙应用开发

C语言快速入门

JAVA全系列 教程

面向对象的程序设计语言

Python全系列 教程

Python3.x版本,未来主流的版本

人工智能 教程

顺势而为,AI创新未来

大厂算法 教程

算法,程序员自我提升必经之路

C++ 教程

一门通用计算机编程语言

微服务 教程

目前业界流行的框架组合

web前端全系列 教程

通向WEB技术世界的钥匙

大数据全系列 教程

站在云端操控万千数据

AIGC全能工具班

A

A A

White Night

阅读(1.6k)
赞(0)

内存管理机制

img

Python是由C语言开发的,底层操作都是基于C语言实现,Python中创建每个对象,内部都会与C语言结构体维护一些值。

源码下载,https://www.python.org/

image-20220329135757769

image-20220329140138060

将压缩文件减压,可以看到有很多文件,主要关心两个(Include、Objects)

在Include目录下object.h中可以查看创建对象的结构体。

在创建对象时,每个对象至少内部4个值,PyObject结构体(上一个对象、下一个对象、类型、引用个数)。

有多个元素组成的对象使用PyVarObject,里面由:PyObject结构体(上一个对象、下一个对象、类型、引用个数)+Ob_size(items=元素,元素个数)。

环状双向链表refchain

在python程序中创建的任何对象都会被放在refchain链表中。

image-20220328173539064

类型封装结构体

实时效果反馈

1. python在创建对象时,每个对象内部4个值,使用的结构体是_______(上一个对象、下一个对象、类型、引用个数)。

A Object结构体

B PyVarObject结构体

C PyObject结构体

2. 在python程序中创建的任何对象都会被加入到______中 。

A refchain链表

B chain链表

答案

1=>C 2=>A

 

北京市昌平区回龙观镇南店村综合商业楼2楼226室

©2014-2023 百战卓越(北京)科技有限公司 All Rights Reserved.

京ICP备14032124号-2