【发布时间】:2013-06-05 21:55:35
【问题描述】:
我正在构建一个字符串类,它的行为类似于常规字符串类,除了加法运算符返回两个字符串的长度之和而不是连接它们。然后乘法运算符返回两个字符串长度的乘积。所以我打算做
class myStr(string):
def __add__(self):
return len(string) + len (input)
至少这是我第一部分的内容,但这显然是不正确的。谁能帮我纠正一下。
【问题讨论】:
-
请始终发布您的代码给您的完整错误。
-
为什么要这样做?这是一个非常奇怪的设计。 有一个字符串的对象,并以各种方式使用它,甚至将一些方法直接委托给字符串……这还不错。但是一个对象 是一个 字符串,并且以非字符串的方式执行一些操作,这只会令人困惑。
-
另外,请注意,一旦你做对了,
myStr('abc') + 'def'将是 6,但'abc' + myStr('def')将是'abcdef'。而且,更糟糕的是,s = myStr('abc'); s += myStr('def')会将s设置为 6。这真的是你想要的吗? -
@abarnert 这是作业。同一用户还有其他类似类型的作业问题。
-
@Marcin:我开始怀疑她需要一个更好的教授(或教程或其他)。任何愿意做这项作业的人要么是故意混淆他的学生,要么是因为 60 年代的 LDS^H^H^HLOOPS 太多而感到困惑……
标签: python string operator-overloading