041作业1:__new__的使用问题
第041讲的作业:#041 作业1
class C2F:
def __new__(self,num):
return num*1.8+32
print(C2F(32))
请问我这样写有什么问题?它也能输出正确的数字。 本帖最后由 zltzlt 于 2020-8-1 09:39 编辑
可以打印一下它的 type:
>>> class C2F:
def __new__(self,num):
return num*1.8+32
>>> type(C2F(5))
<class 'float'>
可以看到这是 float 的实例
可以参考:https://fishc.com.cn/thread-143550-1-1.html
这样写的话导致返回的实例就不是 C2F 的实力对象,而是 float 的实例对象了
因为 __new__ 返回值是将实例对象返回给__init__ 的,而你返回了个 float 值,那么这个实例就变成了 float 的实例对象,而不是 C2F
Twilight6 发表于 2020-8-1 09:36
这样写的话导致返回的实例就不是 C2F 的实力对象,而是 float 的实例对象了
因为 __new__ 返回值是 ...
错字 永恒的蓝色梦想 发表于 2020-8-1 09:39
错字
{:10_297:} 哈哈哈哈嘘
页:
[1]