鱼C论坛

 找回密码
 立即注册
查看: 910|回复: 13

[已解决]p41 课后题第1题的疑问

[复制链接]
发表于 2020-5-20 21:57:23 | 显示全部楼层 |阅读模式

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

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

x
定义一个类实现摄氏度到华氏度的转换(转换公式:华氏度 = 摄氏度*1.8+32)
首先,我对于__new__()这个魔法方法还是不怎么理解,然后就出现了如下的代码:
class C2F:
    def __new__(cls, cel):
        return cel*1.8 + 32
结果很神奇的是,竟然成功运行了
结果我一看小甲鱼老师的答案,无语了,思路风马牛不相及,我还是在按之前学的基础的知识,根本木有理解这个函数啊!
请问大神们这样有没有问题,
然后请问大家
return float.__new__(cls, arg*1.8 + 32)
这行代码的理解
流下了脑子不够用的泪水。。。
最佳答案
2020-5-22 16:51:39
Tigeroad 发表于 2020-5-22 16:49
可能是偏门邪道吧哈哈 ,目前类与对象这里我还是不知道定义类的具体用处,所以理解不透。继续看课程。。

我的笔记看看可能能帮助到你理解:

Python类实例方法
类、实例、局部变量
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-20 22:08:28 | 显示全部楼层
哈哈
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-20 22:10:31 | 显示全部楼层
你这不是完整代码吧?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-20 22:11:15 From FishC Mobile | 显示全部楼层
Twilight6 发表于 2020-5-20 22:08
哈哈

。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-20 22:18:44 | 显示全部楼层
我去看了下,小甲鱼的答案是这样的:
class C2F(float):
    def __new__(cls, arg=0.0):
        return float.__new__(cls, arg * 1.8 + 32)
你的疑问是最后一句是什么意思吧
就是类对象C2F继承了 float 浮点型函数的方法,让他返回的是以浮点型返回
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-20 22:20:17 | 显示全部楼层
float.__new__(cls, arg*1.8 + 32)
只是把返回值做成了C2F对象而已,而你的返回值为float。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-20 22:23:30 | 显示全部楼层
其实我感觉你的答案已经足够了,因为你乘了一个浮点数,产生的也是浮点数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-22 16:49:29 | 显示全部楼层
Twilight6 发表于 2020-5-20 22:23
其实我感觉你的答案已经足够了,因为你乘了一个浮点数,产生的也是浮点数

可能是偏门邪道吧哈哈 ,目前类与对象这里我还是不知道定义类的具体用处,所以理解不透。继续看课程。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-22 16:51:39 | 显示全部楼层    本楼为最佳答案   
Tigeroad 发表于 2020-5-22 16:49
可能是偏门邪道吧哈哈 ,目前类与对象这里我还是不知道定义类的具体用处,所以理解不透。继续看课程。。

我的笔记看看可能能帮助到你理解:

Python类实例方法
类、实例、局部变量
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2020-5-22 17:16:29 | 显示全部楼层
永恒的蓝色梦想 发表于 2020-5-20 22:20
只是把返回值做成了C2F对象而已,而你的返回值为float。

请问:如果按小甲鱼的代码,“返回值做成了C2F对象而已”这句话的意思是什么呢,返回值不是一个继承float的类嘛?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-22 17:24:00 | 显示全部楼层
Tigeroad 发表于 2020-5-22 17:16
请问:如果按小甲鱼的代码,“返回值做成了C2F对象而已”这句话的意思是什么呢,返回值不是一个继承float ...

谁告诉你要返回类的?要返回这个类的对象
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-22 17:31:01 | 显示全部楼层
永恒的蓝色梦想 发表于 2020-5-22 17:24
谁告诉你要返回类的?要返回这个类的对象

那返回float这个类的对象,这么说对吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-22 17:31:33 | 显示全部楼层
Twilight6 发表于 2020-5-22 16:51
我的笔记看看可能能帮助到你理解:

Python类实例方法
类、实例、局部变量

谢谢你!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-22 17:32:09 | 显示全部楼层

嘿嘿 对你有帮助记得设置最佳噢~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-2-1 18:56

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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