float的值怎么初始化_小试牛刀,解剖浮点对象 float

本文探讨了Python中的float对象,包括其内部结构、如何创建和初始化。float对象由PyFloatObject结构组成,核心字段ob_fval存储浮点值。float类型的元信息存储在PyFloat_Type中,影响实例对象的行为。创建float对象主要通过PyFloat_FromDouble和PyFloat_FromString等API,利用空闲对象缓存池优化内存分配。文章还预告了float对象的销毁和缓存池详情。
摘要由CSDN通过智能技术生成

点击上方蓝色小字 “小菜学编程” ,关注我们?

经过前面章节,我们知道 float 对象背后由 PyFloatObject 组织,对其结构也了然于胸。 那么,本节为何要重复讨论 float 对象呢?

一方面, 对象模型 中关于 float 对象的讨论, 着眼于 Python 面向对象体系的讲解,许多细节没来得及展开。

另一方面, float 作为 Python 中最简单的对象之一,“麻雀虽小,五脏俱全”, 拥有对象的全部必要属性。以 float 对象为起点开启源码之旅,能够快速上手,为研究更复杂的内置对象打好基础,建立信心。

内部结构

float 实例对象在 Include/floatobject.h 中定义,结构很简单:

typedef struct {
    
    PyObject_HEAD
    double ob_fval;
} PyFloatObject;

除了定长对象共用的头部,只有一个额外的字段 ob_fval ,存储对象所承载的浮点值。

fb66ab19530abde34595510b96f89b9d.png
浮点实例对象内部结构

float 类型对象又长啥样呢?

与实例对象不同, float 类型对象 全局唯一 ,因此可以作为 全局变量 定义。在 C 文件 Objects/floatobject.c 中,我们找到了代表 float 类型对象的全局变量 PyFloat_Type

PyTypeObject PyFloat_Type = {
    
    PyVarObject
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值