Python如何将__str__代码用于__repr__?

时间:2017-03-15 21:53:45

标签: python string repr

我几天前在Phyton说过编程,所以如果问题很简单,我很抱歉。

我写了这段代码:

>>> 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 

如何在def __str__(self):中使用代码wrritten而无需重新编写代码?我无法在其他任何地方找到答案。 感谢。

1 个答案:

答案 0 :(得分:-2)

你缺少一个下划线。

修正此行:

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