我创建了一个名为 的 Python 类Liger
,它扩展了一个名为 的类Lion
和一个名为Tiger
. 该类从andLiger
继承了方法,但语法仍然有效 - 没有打印错误消息,而是方法的实现由继承。是否可以在 Python 中检测到像这样的方法名称冲突,以便在方法名称以这种方式冲突时打印错误消息?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