2016-09-15 61 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的類型兼容。

相關問題