これは簡単なはずですが、何かが足りないからです。
期待どおりに機能するオブジェクトがあります。
class TextElement(ContentItemElement):
'''
Single String Elements, for example, headlines
'''
def __init__(self, name, data):
super(TextElement, self).__init__()
self.name=name
self.text=data
def prettyPrint(self):
printstring = u'*HTML* '
self.name.encode('utf-8')
printstring += u'<h3> '+self.name+u' </h3>'
self.text.encode('utf-8')
printstring += u'<p> '+self.text+u' </h3>'
print printstring
わかりました。それをインスタンス化することができます。まさに私が望んでいることを実行します。しかし、私はより具体的なバージョンの TextObjects を作成したいと考えています。だから私はこれをします:
class CiteElement(TextElement):
'''
Single String Elements, for example, headlines
'''
def __init__(self, name, data):
super(CiteElement, self).__init__()
self.validValues=['Crap I make up', 'Crap I found on the web']
しかし、インスタンス化しようとすると、これは機能します:
ee = TextElement(element, self.raw[element])
ee.validValues=['Crap I make up', 'Crap I found on the web']
しかし、これはしません
ee = CiteElement(element, self.raw[element])
代わりに、このエラーが表示されます:
TypeError: __init__() takes exactly 3 arguments (1 given)
明らかに、私は何か小さなものを見逃しています。Python オブジェクトの鍵となるもの。私がよく知っているはずのことですが、何年もコーディングしてきました。しかし、それは何ですか?