鱼C论坛

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

关于重写__rshit__魔法方法问题(第42课后题)

[复制链接]
发表于 2018-9-26 16:50:23 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 dtspsppt 于 2018-9-26 17:10 编辑

这是小甲鱼的代码 :
class Nstr(str):
    def __lshift__(self,other):
        return self[other:]+self[:other]
    def __rshift__(self,other):
        return self[:-other]+self[-other:]

结果是对的
>>> a=Nstr('i love fishc.com!')
>>> a<<3
'ove fishc.com!i l'
>>> a>>3
'i love fishc.com!'
>>>
但是!为什么右移却不能是这样:
self[-other:]+self[:-other]

这是我右移的结果:
>>> a=Nstr('i love fishc.com!')
>>> a<<3
'ove fishc.com!i l'
>>> a>>3
'om!i love fishc.c'

按常理说 i love fishc.com! 左移3次后 是ove fishc.com!i l 没错
但self[:-other]访问的应该是ove fishc.c啊


还有 按照小甲鱼的代码 我上来先>>3  结果不变 这是为啥?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-9-26 16:56:39 | 显示全部楼层
你的对
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-9-26 16:59:25 | 显示全部楼层

可我的结果不对啊。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-26 17:01:30 | 显示全部楼层
self[:-3]是'i love fishc.c'
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-9-27 16:06:50 | 显示全部楼层
顶顶顶,有大神解答一下吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-29 15:53:50 | 显示全部楼层
楼主 这个问题 你解决了吗 我也在困惑
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-10-7 10:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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