继承类中的python __str__

时间:2016-12-01 00:52:12

标签: python

以下使用继承类设置__str__函数的代码失败,除非有"行"在自我和第一个属性之间,即行junk = 99,被注释掉程序炸弹

class TemplateBlock(object) :

    def __init__(self,                            
                 tidno      = 1):                
        self.tidno          = tidno              

    def __str__(self) :
        return '%.2d:' % (self.tidno)

class Block(TemplateBlock) :

    def __init__(self,                            
                 junk       = 99,                 
                 bidno      = 3) :
        TemplateBlock.__init__(self)                               
        #self.junk           = junk          
        self.bidno          = bidno

    def __str__(self) :
        return TemplateBlock.__str__(self) + '\n%.2d' %(self.bidno)

    def set(self,t) :                            
        self.tidno          = t.tidno            

tb = TemplateBlock(tidno=2)
b = Block(tb)
b.set(tb)
print(b)

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

Block(td)将self.bidno设置为作为TemplateBlock的td。 从那里我怀疑'\ n%.2d'%(self.bidno)抛出异常,因为bidno不是数字。