python中 几个关于__init__等魔法方法中(self,other)的问题

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

a=Ntr("你是谁我是谁")
b=Ntr("我是谁")
a-b
'你是谁'

在定义def sub的时候传入了两个变量(self,other)
但是但是a实例化的时候只传入了一个self变量"你是谁我是谁“,那为什么在定义的时候要加入other参数呢,他是咋运作的

补充!

图片说明

这里的self 和 other 又是咋运作的

传入的是other参数 “你是谁我是谁”,self 是你的实例对象a 和 b, 你理解岔了

self相当于c语言的this
如果你要初始化成员变量或者继承的类的变量,就需要self,当你调用self.replace,这里用到self
other是构造函数的那个参数。 a=Ntr("你是谁我是谁")中的"你是谁我是谁"