xiaofan1228 发表于 2020-3-3 11:37:56

【第41讲】重构类的问题

class C2F(float):
      "摄氏度转换为华氏度"
      def __new__(cls, arg=0.0):
                return float.__new__(cls, arg * 1.8 + 32)


这个是课后作业, C2F(float) 括号内只能写数据类型吗?

视频里也是
class CapStr(str):

zltzlt 发表于 2020-3-3 11:41:54

并不是,可以写任意一种类名。比如:

>>> class A:
        pass

>>> class B(A):    # 表示继承自 A 类
        pass

xiaofan1228 发表于 2020-3-3 12:16:43

zltzlt 发表于 2020-3-3 11:41
并不是,可以写任意一种类名。比如:

class C2F(x):
    def __new__(cls, x):
      x = (x * 1.8) + 32
      return x.__new__(cls, x)

print(C2F(32))



NameError: name 'x' is not defined

那这个错误该怎么理解呢?

zltzlt 发表于 2020-3-3 12:17:17

xiaofan1228 发表于 2020-3-3 12:16


这样不可以,x 不是类名,而且 x 没有被定义过

xiaofan1228 发表于 2020-3-3 12:18:53

zltzlt 发表于 2020-3-3 12:17
这样不可以,x 不是类名,而且 x 没有被定义过

oooooooo!!!!! 明白了!!!感谢!!!!
页: [1]
查看完整版本: 【第41讲】重构类的问题