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

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

经过前面章节,我们知道 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 = {
    
    PyVarObjec
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值