雪之下雪乃. 发表于 2020-3-25 17:08:16

Python中遇到的难题 8 self

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 17:17:11

'ACEmmm' 会传到 self,'m'传到other

flamezyy 发表于 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'

雪之下雪乃. 发表于 2020-3-25 18:59:33

永恒的蓝色梦想 发表于 2020-3-25 17:17
'ACEmmm' 会传到 self,'m'传到other

self 不是绑定 用的么也可以传?那么什么情况下可以传什么情况下不可以传的呢

永恒的蓝色梦想 发表于 2020-3-25 19:01:17

雪之下雪乃. 发表于 2020-3-25 18:59
self 不是绑定 用的么也可以传?那么什么情况下可以传什么情况下不可以传的呢

绑定用的是什么意思

雪之下雪乃. 发表于 2020-3-25 19:04:11

永恒的蓝色梦想 发表于 2020-3-25 19:01
绑定用的是什么意思

小甲鱼课程里面不是讲 self 是用来绑定参数的么 ?类里面的函数 需要绑定一个 self 才能被实例化调用

永恒的蓝色梦想 发表于 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'))
页: [1]
查看完整版本: Python中遇到的难题 8 self