Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 调用基类方法时出现的问题_Python_Python 3.x - Fatal编程技术网

Python 调用基类方法时出现的问题

Python 调用基类方法时出现的问题,python,python-3.x,Python,Python 3.x,我是Python新手。我知道这个问题没有用。但我对我的问题感到失望。我在基类动物中定义了两个方法。当我尝试在继承的类中调用基类方法时,会显示以下错误: name错误:未定义名称“display\u name” 您需要引用带有self前缀的display\u name函数,而不是将self作为参数传递 另外,正如锑所指出的,您需要从与类实例关联的函数中调用display_name(在接受self参数的函数中) 出现在方法函数外部但在类内部的代码与整个类相关联,而不是与该类的任何特定实例相关联-在

我是Python新手。我知道这个问题没有用。但我对我的问题感到失望。我在基类
动物
中定义了两个方法。当我尝试在继承的类中调用基类方法时,会显示以下错误:
name错误:未定义名称“display\u name”


您需要引用带有
self
前缀的
display\u name
函数,而不是将
self
作为参数传递

另外,正如锑所指出的,您需要从与类实例关联的函数中调用
display_name
(在接受
self
参数的函数中)

出现在方法函数外部但在类内部的代码与整个类相关联,而不是与该类的任何特定实例相关联-在此上下文中使用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()

另外,您尝试在类范围内调用它,而不是在实例上调用它。可能不会太好。@codebox我知道了。请您解释一下为什么我需要将方法调用放在派生类中的另一个方法中。我已经尝试在答案中解释了更多,但您可能应该了解类方法和对象方法之间的区别。
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()