2016-09-15 62 views
-1

我有两个类。一个继承了其他:如何从一个基类的对象继承的类中调用方法?

class A(object): 
    def __init__(self): 
     self.attribute = 1 

class B(A): 
    def get_attribute(self): 
     return self.attribute 

我希望能够呼吁A型我不能编辑类A(它是一个内置的类)对象的B方法。当我尝试从B调用方法时,会出现AttributeError。

a = A() 
a.get_attribute() 

Traceback (most recent call last): 
    File "<pyshell#7>", line 1, in <module> 
    a.get_attribute() 
AttributeError: 'A' object has no attribute 'get_attribute' 

有没有办法来调用的B方法,而没有明确声明中的数据是B型的?

+0

你为什么要这么做? 'A',超类不知道'B',子类有一些功能 – Li357

+0

这与继承的工作方式完全相反,所以不行,你不能这样做。 – kindall

+0

“我希望能够从B类型的对象中调用方法。” - 从根本上讲没有意义。如果它对A对象有意义并且只使用A对象支持的功能,您可能希望将此方法设置为普通函数。 – user2357112

回答

0

虽然它是不鼓励你可以使用任何方法,如功能。在你的情况下,它将是

B.get_attribute(a) 

因为该方法必须与a的类型兼容。

相关问题