2013-04-09 70 views
0

我是Python中的新手。我知道這個問題沒用。但我對我的問題感到沮喪。我在我的基類Animals中定義了2個方法。當我嘗試調用基方法在我的繼承類它顯示了這些錯誤: NameError: name 'display_name' is not defined 調用基類方法的問題

class Animals(): 
    def display_name(self): 
     print ('Name is Mr.X')   
    def display_age(self): 
     print('Age is 25')  
class Name(Animals): 
    display_name(self) 
class Age(Animals): 
    display_age(self) 

n=Name() 
a=Age() 
n.display_name() 
a.display_age() 

回答

2

您需要參考display_name功能與self前綴強似self作爲參數。

另外,正如銻所指出的那樣,您需要從與該類的實例關聯的函數(在接受參數self的函數中)調用display_name。出現一個方法功能之外,但在類中

代碼與整個類相關聯,而不是與類的任何特定實例 - 使用self變量在這種情況下是沒有意義的 - 如果你從類中創建多個對象哪一個是指它?

class Animals(): 
    def display_name(self): 
     print ('Name is Mr.X') 

    def display_age(self): 
     print('Age is 25')  

class Name(Animals): 
    def call_display_name(self): 
     self.display_name() 

class Age(Animals): 
    def call_display_name(self): 
     self.display_age() 

Name().call_display_name() 
+2

此外,您試圖在類作用域而不是實例中調用它。可能不會太好。 – Antimony 2013-04-09 13:02:33

+0

@codebox它不工作。它說自己沒有定義 – Techy 2013-04-09 13:05:46

+0

用完整代碼更新 – codebox 2013-04-09 13:09:58