fc5igm 发表于 2021-6-15 18:21:25

关于__new__用法的比较

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

class C2F:
    def __new__(cls,dg):
      return dg*1.8+32

以上两个类,第一个会比第二个更好么?如果好,好在了哪呢?

Twilight6 发表于 2021-6-15 19:15:17


主要区别在于返回的是谁的实例

第一个代码返回的是 C2F 类的实例对象

第二个代码返回的是 float 的实例对象

你若新写的类 和 float 相差不大,就不用太纠结,都差不多

若你重写的类 和 float 有些差别,那么肯定是第一个代码好

因为你重定义的类,可以调用你自己后续重写的方法,而 float 不能调用你自己重写的方法
页: [1]
查看完整版本: 关于__new__用法的比较