鱼C论坛

 找回密码
 立即注册
查看: 1557|回复: 4

[已解决]Python 重写左移位,求详解

[复制链接]
发表于 2021-3-27 12:24:04 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 huyanmin 于 2021-3-27 12:28 编辑

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!')   #有形参才会传入实参,此处的‘I love FishC.com!’ 是以参数的形式传入的,在上面类定义中哪个是形参啊?怎么分辨是形参呢?
>>> a << 3
'ove FishC.com!I l'
>>> a >> 3
'om!I love FishC.c'
最佳答案
2021-3-27 12:48:29
本帖最后由 jackz007 于 2021-3-27 12:57 编辑
huyanmin 发表于 2021-3-27 12:43
你的意思self是形参吗?


      self 是写类方法时用到的形参,代表对象自身,在调用方法时,此参数不会出现,不能写进代码。
      例如,self . abc = 123,是为对象的属性 abc 赋值,self . foo() 是调用对象的 foo() 方法,当然,这样的代码只能存在于类方法定义中。如果在类定义以外,假设新创建的实例对象是 a,那么,为属性 abc 赋值应该写为 a . abc = 123,调用 foo() 方法应该写为 a . foo()。看出来了?self 就是 a!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-3-27 12:26:13 | 显示全部楼层
Nstr这个类继承了str,所以Nstr("qweqwe")就相当于str("qweqwe")。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-27 12:38:42 | 显示全部楼层
本帖最后由 jackz007 于 2021-3-27 12:45 编辑

        NStr 继承自 str
  1.     a = NStr('I love FishC.com!')
复制代码

        所以,a 可以被视为一个字符串对象
  1.     a << 3  # self 是 a,other 是 3
  2. 所以
  3.     self[other:] + self[:other]
  4. =
  5.     a[3:] + a[: 3]
复制代码
  1.     a >> 3  # self 是 a,other 是 3
  2. 所以
  3.     self[-other:] + self[:-other]
  4. =
  5.     a[-3:] + a[: -3]
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2021-3-27 12:43:18 | 显示全部楼层
你的意思self是形参吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-27 12:48:29 | 显示全部楼层    本楼为最佳答案   
本帖最后由 jackz007 于 2021-3-27 12:57 编辑
huyanmin 发表于 2021-3-27 12:43
你的意思self是形参吗?


      self 是写类方法时用到的形参,代表对象自身,在调用方法时,此参数不会出现,不能写进代码。
      例如,self . abc = 123,是为对象的属性 abc 赋值,self . foo() 是调用对象的 foo() 方法,当然,这样的代码只能存在于类方法定义中。如果在类定义以外,假设新创建的实例对象是 a,那么,为属性 abc 赋值应该写为 a . abc = 123,调用 foo() 方法应该写为 a . foo()。看出来了?self 就是 a!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-12 16:03

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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