という名前の Python クラスを作成しました。このクラスは、 という名前のクラスと というLiger
名前のクラスを拡張します。クラスはとの両方からメソッドを継承しますが、それでも構文は有効です。エラー メッセージは出力されませんが、代わりにのメソッドの実装が に継承されます。Python でこのようなメソッド名の衝突を検出して、メソッド名がこのように衝突したときにエラー メッセージが出力されるようにすることは可能ですか?Lion
Tiger
Liger
speak()
Lion
Tiger
Tiger
speak()
Liger
'''
Conflicting method names in python
'''
class Tiger():
@staticmethod
def speak():
print "Rawr!";
class Lion():
@staticmethod
def speak():
print "Roar!";
class Liger(Tiger, Lion):
pass
'''both superclasses define a speak() method, and I need a way to detect this type of conflict.'''
Liger.speak(); ''' this prints "Rawr" instead of printing an error message. '''
'''Is there any way to detect method name collisions like this one?'''
コードはオンラインでテストおよびデバッグできます: http://ideone.com/xXOoVq