誰にとっても簡単で、安全で、簡単に理解できる方法を意味しますか (super() に関する限り)?
短い答え:いいえ。
長い答え: はい。それにはいくつかの方法があります。そのうちの 1 つは、メタクラスを使用して、クラスの初期化中に super() の作成を自動化することです。
>>> class AutoSuper(type):
... def __init__(cls, name, bases, dict):
... super(AutoSuper, cls).__init__(name, bases, dict)
... setattr(cls, '_%s__super'%name, super(cls))
...
>>>
そのため、作成中のクラスへの super() 呼び出しは __super 属性に割り当てられます。名前マングリングは手動で行う必要がありますが、インスタンスとサブクラスはそれに応じてヒットします。これで、super を呼び出す必要さえなくなりました。__super 属性を使用するだけです。
>>> class A(object):
... __metaclass__ = AutoSuper
... def m(self):
... print 'A'
...
>>>
>>> class B(A):
... def m(self):
... print 'B'
... self.__super.m()
...
>>>
>>> class C(B):
... def m(self):
... print 'C'
... self.__super.m()
...
>>> obj = C()
>>> obj.m()
C
B
A
>>>
もちろん、これは学習目的でのみ投稿しているので、使用はお勧めしません。これは、一部の人が Python で非難する過剰な賢さの境界線にあるようなものです。