2016-09-06 51 views
0

我有一个基类类X,和子类Y,它可以重新实现或不能从基类X的方法知道如果儿童类实现一个父类的方法

我通过子类的名称作为函数的一个变量。

在这些函数里面,我需要测试这个类是否已经实现,或者是否从它的基类中实现了某些方法。

(我不能使用hasattr(childClassName.methodName),因为它总是返回true)

+3

的可能的复制[python基类如何知道子类是否覆盖了它的方法?](http://stackoverflow.com/questions/1776994/how-can-a-python-base-class-tell-whether-a-sub -class-has-overriden-its-methods) – webmaster

+0

我想知道为什么有人将我的问题标记为重复的,这不像我说的编辑问题,然后投票下来,这是没有意义的。 – darkgaze

+0

那是因为它与标记的问题完全一样。你想让我删除我的评论吗? – webmaster

回答

1

使用比较:

getattr(className, 'methodName') is getattr(className, 'method') 

如果false,该方法已被重写