は、私が理解しようとしていたときに、正しく(2.7.35または3.xのいずれか)>>> help(super)
上Pythonのsuper()引数:なぜsuper(obj)ですか?
Pythonでsuper()を使用する方法をインタプリタはそれを呼び出す方法を私に語った:
class super(object)
| super(type) -> unbound super object
| super(type, obj) -> bound super object; requires isinstance(obj, type)
| super(type, type2) -> bound super object; requires issubclass(type2, type)
Python3.xでは、クラス定義内でsuper()を使用することが可能になりましたが、なぜsuper(obj)
を使用できないのか分かりません。クラス定義内のsuper(self)
理由があるはずですが、見つけられません。私にとっては、これらの行はsuper(obj.__class__, obj)
またはsuper(self.__class__, self)
に相当し、それらは正しく動作するでしょうか?
super(obj)
と入力するだけで、Python 3.xでも便利なショートカットになると思います。
メタクラスで「スーパー」と呼んだときにあいまいさが出ると言いましたが、そのあいまいさも2引数形式でも存在することがわかりました。今私はよくわからない。 – user2357112