p41 课后题第1题的疑问
定义一个类实现摄氏度到华氏度的转换(转换公式:华氏度 = 摄氏度*1.8+32)首先,我对于__new__()这个魔法方法还是不怎么理解,然后就出现了如下的代码:
class C2F:
def __new__(cls, cel):
return cel*1.8 + 32
结果很神奇的是,竟然成功运行了{:10_282:}
结果我一看小甲鱼老师的答案,无语了,思路风马牛不相及,我还是在按之前学的基础的知识,根本木有理解这个函数啊!
请问大神们这样有没有问题,
然后请问大家
return float.__new__(cls, arg*1.8 + 32)
这行代码的理解
流下了脑子不够用的泪水。。。 哈哈 你这不是完整代码吧? Twilight6 发表于 2020-5-20 22:08
哈哈
。。。 我去看了下,小甲鱼的答案是这样的:
class C2F(float):
def __new__(cls, arg=0.0):
return float.__new__(cls, arg * 1.8 + 32)
你的疑问是最后一句是什么意思吧
就是类对象C2F继承了 float 浮点型函数的方法,让他返回的是以浮点型返回 float.__new__(cls, arg*1.8 + 32)只是把返回值做成了C2F对象而已,而你的返回值为float。 其实我感觉你的答案已经足够了,因为你乘了一个浮点数,产生的也是浮点数 Twilight6 发表于 2020-5-20 22:23
其实我感觉你的答案已经足够了,因为你乘了一个浮点数,产生的也是浮点数
可能是偏门邪道吧哈哈 ,目前类与对象这里我还是不知道定义类的具体用处,所以理解不透。继续看课程。。 Tigeroad 发表于 2020-5-22 16:49
可能是偏门邪道吧哈哈 ,目前类与对象这里我还是不知道定义类的具体用处,所以理解不透。继续看课程。。
我的笔记看看可能能帮助到你理解:
Python类实例方法类、实例、局部变量 永恒的蓝色梦想 发表于 2020-5-20 22:20
只是把返回值做成了C2F对象而已,而你的返回值为float。
请问:如果按小甲鱼的代码,“返回值做成了C2F对象而已”这句话的意思是什么呢,返回值不是一个继承float的类嘛? Tigeroad 发表于 2020-5-22 17:16
请问:如果按小甲鱼的代码,“返回值做成了C2F对象而已”这句话的意思是什么呢,返回值不是一个继承float ...
谁告诉你要返回类的?要返回这个类的对象 永恒的蓝色梦想 发表于 2020-5-22 17:24
谁告诉你要返回类的?要返回这个类的对象
那返回float这个类的对象,这么说对吗? Twilight6 发表于 2020-5-22 16:51
我的笔记看看可能能帮助到你理解:
Python类实例方法类、实例、局部变量
谢谢你! Tigeroad 发表于 2020-5-22 17:31
谢谢你!
嘿嘿 对你有帮助记得设置最佳噢~{:10_297:}
页:
[1]