首页 > 代码库 > 练习:字符串减法

练习:字符串减法

字符串加法会将两个字符串连接

>>> a = " 我是超级 "

>>> b = "因为我内裤外穿了"

>>> a + b
‘ 我是超级 因为我内裤外穿了‘

但遗憾的是 字符串减法会抛出异常。

 

定义一个类,支持字符串减法: A - B。 从A中去除所有B的子字符串。

class Nstr(str):

    def __sub__(self , other):

        return self.replace(other , "")

 

本人错误:

>>> a = " l am a superman"

>>> b = "super"

>>> a - b

Traceback (most recent call last):

  File "<pyshell#27>", line 1, in <module>

    a - b

TypeError: unsupported operand type(s) for -: str and str

 

写完上面的类之后,直接调用减法,错误错误错误。
这么写a,b的类型还是str,  str本身没减法,所以报错误。

>>> type(a)

<class str>

>>> type(b)

<class str>

 

正确方法:

>>> a = Nstr("l am a superman")

>>> b = Nstr("super")

>>> a - b

l am a man

 

练习:字符串减法