Python如何为__repr__使用__str__代码?
问题描述:
我前几天在Phyton讲过编程,所以如果问题很简单,我很抱歉。Python如何为__repr__使用__str__代码?
我写这段代码:
>>> class Polynomial:
def __init__(self, coeff):
self.coeff=coeff
def __repr_(self):
return str(self)
def __str__(self):
s=''
flag=0;
for i in reversed(range(len(self.coeff))):
if(i==0):
s+= '+ %g ' % (self.coeff[i])
elif (flag==0):
flag=1
s+= '%g z**%d' % (self.coeff[i],i)
else:
s+= '+ %g z**%d ' % (self.coeff[i],i)
return s
但__repr__
不工作:
>>> p= Polynomial([1,2,3])
>>> p
<__main__.Polynomial instance at 0x7fd3580ad518>
>>> print p
3 z**2+ 2 z**1 + 1
如何,我可以使用,无需重新writining它def __str__(self):
wrritten的代码?我在其他地方找不到答案。 谢谢。
答
您缺少下划线。
修复此行:
def __repr_(self): # BROKEN
def __repr__(self): # FIXED
+3
请评论和投票关闭作为一个拼写错误,而不是回答的。 – Li357
通过重命名'__repr_'到'__repr__' –