袋里装条蓝胖次 发表于 2017-9-13 16:51:32

关于python 43课的一道练习

题目:定义一个单词(Word)类继承自字符串,比较传入的单词长度

代码:class Word(str):
                      def__new__(cls, word):
                                  if ' ' in word:
                                       word = word[:word.index(' ')]
                                  returnstr.__new__(cls, word)
                ...

最后直接返回 word 不行吗,为什么还要专门返回 str.__new__(cls, word)

ba21 发表于 2017-9-13 18:37:58

也是可以的,不过为了保险起见,避免出现无限递归这类的问题,还是交给父类 str.__new__()方法处理好后再返回。

袋里装条蓝胖次 发表于 2017-9-13 22:35:57

ba21 发表于 2017-9-13 18:37
也是可以的,不过为了保险起见,避免出现无限递归这类的问题,还是交给父类 str.__new__()方法处理好后再返 ...

感谢解答{:5_92:}
页: [1]
查看完整版本: 关于python 43课的一道练习