[英]How can I implement a method to print an object in the super class?
运行此命令时,将获得与创建的种类对象相对应的所需字符串。 我在这里的目标是能够在Animal类中创建一种实现相同功能的方法。 但是我对如何做到这一点没有很好的了解。
class Animal(object):
def __init__(self):
pass
def speak():
pass
class Mammal(Animal):
def __init__(self):
Animal.__init__(self)
class Cat(Mammal):
def __init__(self):
Mammal.__init__(self)
def __str__(self):
return "meeeow"
class Dog(Mammal):
def __init__(self):
Mammal.__init__(self)
def __str__(self):
return "wooof"
class Primate(Mammal):
def __init__(self):
Mammal.__init__(self)
class Hacker(Primate):
def __init__(self):
Primate.__init__(self)
def __str__(self):
return "Hello world!"
garfield = Cat()
print(garfield)
spike = Dog()
print(spike)
john = Hacker()
print(john)
如下修改您的Animal类。 当从子类中调用super方法时,您会将创建的类的实例传递给父级的init函数。 因此,将类的实例传递给Mammal init函数,该函数调用super并将该实例传递给Animal init函数。
class Animal(object):
def __init__(self):
self.speak()
def speak(self):
print(self)
您继承的类可以访问父类中定义的任何方法。 因此,要实现此目的,只需在Animal
类中定义一个名为speak
的新方法,然后像在示例中所做的那样print
:
class Animal(object):
def __init__(self):
print(self)
pass
def speak(self):
print(self)
然后只需创建实例并调用函数:
garfield = Cat()
garfield.speak()
输出量
meeeow
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.