2013-04-09 67 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