python25のsuper()、先日から色々調べていました。
super(class, instance)という書き方をするんですが、このインターフェイスは、他の言語ではあまり見かけない冗長な書き方だなぁ、と。
いろいろ考えてみたんだけれど、super()は、現在のインスタンスにバインドされた上位クラスを返すわけだから、これを関数として実装するならば、現在のクラスとインスタンスが引数として必要ってことなのかな。
ところで、この件で公式のドキュメントをみて、いろいろ悩んでいたのですが、このライブラリレファレンスの記載が間違っているんじゃないかなぁ。
python2.5の日本語ドキュメントのライブラリレファレンスの組み込み関数のsuperのところで、
とあるんだけれど、
この部分の英文の原文では
となっている。
正しくは、
なんじゃないかな。
どうなんだろう?
super(class, instance)という書き方をするんですが、このインターフェイスは、他の言語ではあまり見かけない冗長な書き方だなぁ、と。
いろいろ考えてみたんだけれど、super()は、現在のインスタンスにバインドされた上位クラスを返すわけだから、これを関数として実装するならば、現在のクラスとインスタンスが引数として必要ってことなのかな。
ところで、この件で公式のドキュメントをみて、いろいろ悩んでいたのですが、このライブラリレファレンスの記載が間違っているんじゃないかなぁ。
python2.5の日本語ドキュメントのライブラリレファレンスの
返された上位クラスオブジェクトが非バ インドの場合、二つめの引数は省略されます。
とあるんだけれど、
この部分の英文の原文では
If the second argument is omitted the super object returned is unbound.
となっている。
正しくは、
2つめの引数が省略された場合、返される上位クラスオブジェクトは非バインドとなります。
なんじゃないかな。
どうなんだろう?