我正在构建一个行为类似于常规字符串类的字符串类,除了加法运算符返回两个字符串的长度之和而不是将它们串联在一起。然后,一个乘法运算符返回两个字符串的长度的乘积。所以我打算做 class myStr(string): def __add__(self): return len(string) + len (input)至少这是我在第一部分中所拥有的,但这显然是不正确的。有人可以帮我改正吗。
2 回答

qq_花开花谢_0
TA贡献1835条经验 获得超7个赞
您需要从派生str,并且可以len(self)用来获取当前实例的长度。您还需要为运算符__add__的另一个操作数指定一个参数+。
class myStr(str):
def __add__(self, other):
return len(self) + len(other)
演示:
>>> class myStr(str):
... def __add__(self, other):
... return len(self) + len(other)
...
>>> foo = myStr('foo')
>>> foo
'foo'
>>> foo + 'bar'
6
添加回答
举报
0/150
提交
取消