我正在构建一个字符串类,它的行为类似于常规字符串类,除了加法运算符返回两个字符串的长度之和而不是连接它们。然后乘法运算符返回两个字符串长度的乘积。所以我打算做
class myStr(string):
def __add__(self):
return len(string) + len (input)
至少这是我第一部分的内容,但这显然是不正确的。有人可以帮我纠正它。
我正在构建一个字符串类,它的行为类似于常规字符串类,除了加法运算符返回两个字符串的长度之和而不是连接它们。然后乘法运算符返回两个字符串长度的乘积。所以我打算做
class myStr(string):
def __add__(self):
return len(string) + len (input)
至少这是我第一部分的内容,但这显然是不正确的。有人可以帮我纠正它。
您需要派生自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
string
不是一个类。这不是什么*。除非len(string)
您定义string
.
其次,__add__
没有input
参数。
您需要解决这两个问题。
*
您可以导入一个名为 的模块string
,但它不仅仅存在于全局范围内。