我有两个班级:
class Base(object):
def __init__(self):
object.__init__(self)
def print_methods(self):
print self.__dict__
class Child(Base):
def __init__(self):
Base.__init__(self)
def another_method(self):
pass
现在我可以在print_method
个实例中调用Child
,并希望看到another_method
。但失败了。
答案 0 :(得分:3)
这与继承无关。 Child.another_method()
是类的属性,而不是实例,因此它不在__dict__
的{{1}}中,而是在self
的字典中。如果您仅创建Child
的实例并在此实例上调用Base
,则您也不会看到print_methods()
。
要查找实例的所有方法,您可以使用print_methods
或dir()
(可能与inspect.getmembers()
结合使用,仅包含可调用属性)。