web.form.Formをwebpyフレームワークからサブクラス化して動作を変更しようとしています(テーブルからレンダリング)。今、私はこのエラーobject.__init__() takes no parameters
取得していサブクラス化しようとしていますが、オブジェクトを取得しようとしています.____ init __()はパラメータを受け取りません。
class SyssecForm(web.form.Form):
def __init__(self, *inputs, **kw):
super(SyssecForm, self).__init__(*inputs, **kw)
def render(self):
out='<div id="form"> '
for i in self.inputs:
html = utils.safeunicode(i.pre) + i.render() + self.rendernote(i.note) + utils.safeunicode(i.post)
out += "%s"%(html)
out += '"<div id="%s"> %s %s</div>'% (i.id, net.websafe(i.description), html)
out+= "</div>"
return out
:
'super()'で使用するようにメソッドが特別に設計されていない状況で 'super()'を使用することをお勧めします。特に '__init __()'は 'super()'とうまく動作するように設計されていないので、明示的な基本クラス呼び出し 'web.form.Form .__ init __(self、...)'を使うべきです。 –
@Svenそれは "新しいスタイル"か "古いスタイル"クラスかによって異なります。新しいスタイルクラス( "object"を継承したクラス)では常に 'super'を使うべきですが、古いスタイルクラスでは決して使用しないでください。 – Keith
それはPython 2.7だから、私は推測する古いスタイルだと思います。 –