Python 如何使._; repr___;()正确工作?
我想在Python中使用Python 如何使._; repr___;()正确工作?,python,for-loop,repr,Python,For Loop,Repr,我想在Python中使用\uuuu repr\uuuu,这样我就可以按照下面的方式查看表示 class Polynomial: def __init__(self, *args): self.args = args def __repr__(self): Repr = "Polynomial(" for i in args: if i == 0:
\uuuu repr\uuuu
,这样我就可以按照下面的方式查看表示
class Polynomial:
def __init__(self, *args):
self.args = args
def __repr__(self):
Repr = "Polynomial("
for i in args:
if i == 0:
Repr = Repr + str(self.args[i])
else:
Repr = Repr + ", "+ str(self.args[i])
return Repr
因此,如果我输入
多项式(1,2,3)
,它应该返回“多项式(1,2,3)
,而不是像
。但它仍然返回那些没有信息的东西。我哪里做错了?您有多个问题:
\uuuuu repr\uuuu
应该是类的方法。它当前是\uuuu init\uuuu
方法的内部方法args
,但尝试使用i
,就好像它是索引一样(它是实际的arg).join()
轻松地将列表转换为逗号分隔的字符串class Polynomial:
def __init__(self, *args):
self.args = args
def __repr__(self):
Repr = "Polynomial("
for i in range(len(self.args)):
if i == 0:
Repr = Repr + str(self.args[i])
else:
Repr = Repr + ", "+ str(self.args[i])
Repr += ")"
return Repr
这是一个更加简化的方法,它使用字符串格式和.join()
::
以下是修复代码中的一些拼写错误后的解决方案。但我建议您使用f-strings和一行表达式来表示字符串。在@Selcuk answer中更好地解释了一行和f-strings的用法
class Polynomial:
def __init__(self, *args):
self.args = list(args)
def __repr__(self):
Repr = "Polynomial("
for i,j in enumerate(self.args):
if i == 0:
Repr = Repr + str(j)
else:
Repr = Repr + ", "+ str(j)
return Repr + ")"
“您不应该以这种方式处理内置的
\uu repr\uuu
”:需要引用。@Selcuk My Bad,从现在开始,我将谨慎地说这些话。我现在已经编辑了答案。我认为f字符串是一种更好的表示字符串的pythonic方法,它应该被视为一种建议。你应该总是添加散文来解释你的解决方案。“只要先检查一下你的事实,”物理学家说,“现在一切都好了。”。如果没有,请编辑答案,如果可能的话,因为它将激励我。你的散文说一行和f字串,但你没有显示在代码中。我觉得你没有抓住我评论的重点。
class Polynomial:
def __init__(self, *args):
self.args = list(args)
def __repr__(self):
Repr = "Polynomial("
for i,j in enumerate(self.args):
if i == 0:
Repr = Repr + str(j)
else:
Repr = Repr + ", "+ str(j)
return Repr + ")"