鱼C论坛

 找回密码
 立即注册
查看: 904|回复: 6

[已解决]Python中遇到的难题 8 self

[复制链接]
发表于 2020-3-25 17:08:16 | 显示全部楼层 |阅读模式

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

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

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

#以下为代码演示

a = Nstr('ACEmmm')
b = Nstr('m')

a - b

这段代码的实现原理逻辑是什么呢  Nstr('ACEmmm') 中 'ACEmmm' 这个参数会传到哪里呢 是传输到self 还是other
那么 实行a-b之后 b的'm'会传输到代码中的那一个字符的呢   
最佳答案
2020-3-25 19:24:45
雪之下雪乃. 发表于 2020-3-25 19:04
小甲鱼课程里面不是讲 self 是用来绑定参数的么 ?  类里面的函数 需要绑定一个 self 才能被实例化调用
a = Nstr('ACEmmm')
b = Nstr('m')
a - b
其实就相当于
Nstr.__sub__(Nstr('ACEmmm'),Nstr('m'))
又相当于
Nstr('ACEmmm').__sub__(Nstr('m'))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-25 17:17:11 | 显示全部楼层
'ACEmmm' 会传到 self,'m'传到other
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-25 17:18:11 | 显示全部楼层
Nstr这个类继承str类,只是增加了sub方法,其他与字符类完全一样,所以
a = Nstr('ACEmmm')
b = Nstr('m')
相当于:
a='ACEmmm'
b ='m'
当调用a-b时,调用a的sub方法,self就是a,other就是b,于是调用a.replace(b,''),相当于'ACEmmm'.replace('m',''),返回'ACE'
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-25 18:59:33 | 显示全部楼层
永恒的蓝色梦想 发表于 2020-3-25 17:17
'ACEmmm' 会传到 self,'m'传到other

self 不是绑定 用的么  也可以传?  那么什么情况下可以传  什么情况下不可以传的呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-25 19:01:17 | 显示全部楼层
雪之下雪乃. 发表于 2020-3-25 18:59
self 不是绑定 用的么  也可以传?  那么什么情况下可以传  什么情况下不可以传的呢

绑定用的是什么意思
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-25 19:04:11 | 显示全部楼层

小甲鱼课程里面不是讲 self 是用来绑定参数的么 ?  类里面的函数 需要绑定一个 self 才能被实例化调用
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-25 19:24:45 | 显示全部楼层    本楼为最佳答案   
雪之下雪乃. 发表于 2020-3-25 19:04
小甲鱼课程里面不是讲 self 是用来绑定参数的么 ?  类里面的函数 需要绑定一个 self 才能被实例化调用
a = Nstr('ACEmmm')
b = Nstr('m')
a - b
其实就相当于
Nstr.__sub__(Nstr('ACEmmm'),Nstr('m'))
又相当于
Nstr('ACEmmm').__sub__(Nstr('m'))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-25 11:07

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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