951947697 发表于 2020-11-18 19:42:59

课后作业42讲

class Nstr(str):
    def __sub__(self, other):
      return self.replace(other, '')


代码中 self.replace(other, '') 是什么意思呢?



还有
class Nstr(str):
    def __lshift__(self, other):
      return self + self[:other]

    def __rshift__(self, other):
      return self[-other:] + self[:-other]


代码中return self + self[:other]为啥不是self.呢??


求大神帮忙!!!!!

Twilight6 发表于 2020-11-18 19:55:00



代码中 self.replace(other, '') 是什么意思呢?

这里 __sub__ 的self 指的就是 减号左边的数据,other 指的是 - 号右边的数据,举个例子

a = Nstr('I Love FiiishC!')
b = Nstr('i')
a - b    # 这里 a 指的就是 __sub__ 的 self ,而 b 指的就是 other

那么此时执行 self.replace(other, '')意思就是执行 'I Love FiiishC!'.replace('i', '')

replace 函数将字符串进行替换,即这里就是将   'I Love FiiishC!' 中的 i 替换成 空字符串

代码中return self + self[:other]为啥不是self.呢??

没有这种用法,切片只有直接紧跟变量名的

951947697 发表于 2020-11-19 09:36:21

Twilight6 发表于 2020-11-18 19:55
这里 __sub__ 的self 指的就是 减号左边的数据,other 指的是 - 号右边的数据,举个例子

a = Ns ...

明白了!!!谢谢!!!
页: [1]
查看完整版本: 课后作业42讲