清少呐 发表于 2021-8-31 15:20:52

python零基础入门学习,第42讲动动手第一题

class Nstr(str):
        def __sub__(self,other):
                return other
a = Nstr('I Love FishC.com!iiiiiiiiii')
b = Nstr('i')
a - b
这个是我自己写的代码运行的时候不会减去“i”

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

这个是答案,我不理解这个self.replace是什么意思!

冬雪雪冬 发表于 2021-8-31 15:38:45

把a中的i替换成空字符串,即删掉i

逃兵 发表于 2021-8-31 15:44:56

self 是实例化对象,就是生成对象自己本身
self.replace(other, '')就是对自己做的一个调用

清少呐 发表于 2021-8-31 19:04:20

冬雪雪冬 发表于 2021-8-31 15:38
把a中的i替换成空字符串,即删掉i

我试了,为什么不行

清少呐 发表于 2021-8-31 19:05:32

逃兵 发表于 2021-8-31 15:44
self 是实例化对象,就是生成对象自己本身
self.replace(other, '')就是对自己做的一个调用

懂了懂了,我自己编写的代码你能帮我看看错在哪吗

奶茶newfish 发表于 2021-8-31 19:27:26

replace 函数将指定的字符或字符串(第一个参数)替换为新的字符或字符串(第二个参数),返回替换之后的新字符串。

逃兵 发表于 2021-8-31 19:31:00

清少呐 发表于 2021-8-31 19:05
懂了懂了,我自己编写的代码你能帮我看看错在哪吗

你写的代码return other就是直接返回被减数
页: [1]
查看完整版本: python零基础入门学习,第42讲动动手第一题