ronald627 发表于 2020-3-30 11:27:59

python入门42课动动手第一题

0. 我们都知道在 Python 中,两个字符串相加会自动拼接字符串,但遗憾的是两个字符串相减却抛出异常。因此,现在我们要求定义一个 Nstr 类,支持字符串的相减操作:A – B,从 A 中去除所有 B 的子字符串。
>>> a = Nstr('I love FishC.com!iiiiiiii')
>>> b = Nstr('i')
>>> a - b
'I love FshC.com!'


答:只需要重载 __sub__ 魔法方法即可。
class Nstr(str):
    def __sub__(self, other):
      return self.replace(other, '')


这个self.repliace(other,'')

是哪里来的啊 。。。。

qiuyouzhi 发表于 2020-3-30 11:29:18

这是字符串自带的方法

Hoiste 发表于 2020-3-30 12:03:58

这是自带的一个字符串的方法,string.replace('a','b')作用是可以把字符串string中所有的字符'a'替换成字符'b',同理self.replace(other,'')可以把self中含有other的部分换成空字符串达成’相减‘的目的。查看字符串的方法也可以找到的。

ronald627 发表于 2020-3-30 13:26:27

Hoiste 发表于 2020-3-30 12:03
这是自带的一个字符串的方法,string.replace('a','b')作用是可以把字符串string中所有的字符'a'替换成字符 ...

懂了 tks
页: [1]
查看完整版本: python入门42课动动手第一题