鱼C论坛

 找回密码
 立即注册
查看: 1472|回复: 6

python类名括号里面加float有什么用?

[复制链接]
发表于 2021-8-30 19:45:23 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 LIUQOQ 于 2021-8-30 19:47 编辑

零基础的41节我有点不懂括号里的float具体是什么用处,
只知道怎么用但是不理解ta  求解T_T

class C2F(float):
    def __new__(cls,num):
        new = num*1.8 + 32
        return print(float.__new__(cls,new))


C2F(32)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-8-30 20:07:08 | 显示全部楼层
将32转化为float类型
同样的
class C2F(int):
    def __new__(cls,num):
        new = num*2 + 32
        return print(int.__new__(cls,new))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-30 20:07:43 | 显示全部楼层
本帖最后由 阿奇_o 于 2021-8-30 20:09 编辑

int, float, str, list, dict 这些都是比较特殊的"类名", 是基本的"数据类型",
在自定义类是,class MyClass(float):  就是继承float的意思,
说白点就是:我声明 我MyClass 认 float 为父!我将继承它相关的财产(属性和方法)
这样,我就可以 直接在类里调用 float.__xxx__这样的方法,或使用 super().__init__() 这样的方法,就是调用父类的方法。

ps: 所有的类都默认继承object这个总父类。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2021-8-31 08:25:52 | 显示全部楼层
这个是类的继承

所谓继承,就是拥有它的一切

在定义一个C2F类的时候,继承了float的一切

所以你创建C2F实例的时候,相当于是创建了一个float

只是修改了它的new方法,使得每个实例都会变为new = num*1.8 + 32

之后在使用这个数据的时候,可以像float那样使用了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-31 08:33:28 | 显示全部楼层
int, float, 是基本的"数据类型",
在自定义类是,class Floo(float):  就是继承float的意思,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2021-8-31 10:50:22 | 显示全部楼层
清少呐 发表于 2021-8-31 08:33
int, float, 是基本的"数据类型",
在自定义类是,class Floo(float):  就是继承float的意思,

继承float有什么实际作用呢?我也可以直接调用他啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-31 10:54:28 | 显示全部楼层
hhjdsd 发表于 2021-8-30 20:07
将32转化为float类型
同样的

原来是把参数转化类型啊
终于懂了,谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-13 13:13

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表