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的代码?我在其他地方找不到答案。 谢谢。

+1

通过重命名'__repr_'到'__repr__' –

您缺少下划线。

修复此行:

def __repr_(self): # BROKEN 
def __repr__(self): # FIXED 
+3

请评论和投票关闭作为一个拼写错误,而不是回答的。 – Li357