鱼C论坛

 找回密码
 立即注册
查看: 3156|回复: 5

重构__sub__方法后,减完后返回的是str对象,而不是nstr对象。

[复制链接]
发表于 2018-7-29 10:46:04 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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

如上例,甲鱼老师的答案也差不多。
str1、str2是Nstr对象,现在问题是:str1-str2后,不能和nstr的对象str3相减,不能实现默认的a-b-c的结果。
这个如何修改,请各位老师指导

包括第二题的<<  >>重构后,也只是能移动一次,不能实现先移2次,完了在移动3次的操作。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-7-29 13:07:53 | 显示全部楼层
self.replace(other,'') ??你在干吗?
你把 other 替换成 ‘’ 然后赋值到 self 怎么可能会相减?
看起来差不多而已
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-4 15:23:25 | 显示全部楼层
从self中剔除了子串other呀
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-4 15:25:56 | 显示全部楼层
claws0n 发表于 2018-7-29 13:07
self.replace(other,'') ??你在干吗?
你把 other 替换成 ‘’ 然后赋值到 self 怎么可能会相减?
看起 ...


从self中剔除了子串other呀
比如‘ 1234561’-‘123’=‘4561’
‘456’1‘-61’执行不了我说的这个意思,包括老师的答案,也是不能实现str1-str2-str3的功能。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-5 00:50:11 | 显示全部楼层
把return self 改成 return Nstr(self) 就可以了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-8 21:45:18 | 显示全部楼层
在东边 发表于 2018-8-5 00:50
把return self 改成 return Nstr(self) 就可以了

ok
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-22 00:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表