-1
Der folgende Code zum Einrichten __str__
Funktion mit einer geerbten Klasse schlägt fehl, es sei denn, es gibt eine "Linie" zwischen Selbst und dem ersten Attribut, dh wenn die Zeile junk = 99, ist das Programm BombenPython __str__ in geerbter Klasse
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)
Wir danken Ihnen im Voraus für Ihre Hilfe.
Können Sie das Traceback in Ihre Frage aufnehmen? Bomben zu sagen ist nicht beschreibend genug. –
Bomben Bedeutung? Bitte geben Sie die Ausnahme und die Rückverfolgung an, die Sie sehen. – ShadowRanger
Randbemerkung: Sie übergeben 'tb' an' Block', was keinen Sinn ergibt; es wird zum 'junk'- oder' bidno'-Argument, von denen keines ein 'TemplateBlock' sein sollte. Und Ihr Superklasseninitialisierungsaufruf übergibt keinen Wert für "tidno", was diesen albernen '.set (tb)' Aufruf erfordert, wenn Sie die Unterklasse zum Akzeptieren definieren und 'tidno' richtig übergeben könnten. – ShadowRanger