追加の引数を追加するだけでスーパーコンストラクターを効果的に使用するためにPythonで使用できる魔法はありますか?
理想的には、次のようなものを使用したいと思います:
class ZipArchive(zipfile.ZipFile):
def __init__(self, verbose=True, **kwargs):
"""
Constructor with some extra params.
For other params see: zipfile.ZipFile
"""
self.verbose = verbose
super(ZipArchive, self).__init__(**kwargs)
そして、元のコンストラクター引数を、クラスの追加のものと混ぜて使用できるようにします。そのようです:
zip = ZipArchive('test.zip', 'w')
zip = ZipArchive('test.zip', 'w', verbose=False)
私は Python 2.6 を使用していますが、魔法がより高いバージョンの Python でのみ達成できる場合は、私も興味があります。
編集:おそらく、上記は機能しないことに言及する必要があります。エラーは次のとおりです。TypeError: __init__() takes at most 2 arguments (3 given)