学习python中的类。我想要两个字符串之间的差异,一种减法。例如:
a = "abcdef"
b ="abcde"
c = a - b
这将给出输出 f。
我正在看这门课,我是新手,所以想澄清一下它是如何工作的。
class MyStr(str):
def __init__(self, val):
return str.__init__(self, val)
def __sub__(self, other):
if self.count(other) > 0:
return self.replace(other, '', 1)
else:
return self
这将通过以下方式工作:
>>> a = MyStr('thethethethethe')
>>> b = a - 'the'
>>> a
'thethethethethe'
>>> b
'thethethethe'
>>> b = a - 2 * 'the'
>>> b
'thethethe'
所以一个字符串被传递给类并调用构造函数__init__
。这会运行构造函数并返回一个对象,其中包含字符串的值?然后创建一个新的减法函数,这样当您使用-
MyStr 对象时,它只是定义了减法如何与该类一起使用?当使用字符串调用 sub 时,count 用于检查该字符串是否是所创建对象的子字符串。如果是这种情况,则删除第一次出现的传递字符串。这种理解正确吗?
编辑:基本上这个类可以简化为:
class MyStr(str):
def __sub__(self, other):
return self.replace(other, '', 1)