零晚. 2022-12-06 16:13 采纳率: 100%
浏览 19
已结题

关于python的类与面向对象的问题

问题遇到的现象和发生背景

关于python的类与面向对象的问题

img

用代码块功能插入代码,请勿粘贴截图
class Animal(object):
    def shout(self):
        return "叫"
class Dog(Animal):
    def __init__(self, name):
        self.__name = name
        def get_name(self):
            return self.__name
        def shout(self):
           
class Cat(Animal):
    def __init__(self, name):
        self.__name = name
    def get_name(self):
        return self.__name
    def shout(self):
        


if __name__ == '__main__':
    def test():
        obj
        dog = Dog("斑点狗")
        print(dog.get_name(), end="")
        test(dog)
        cat = Cat("波斯猫")
        print(cat.get_name(), end="")
        test(cat)

运行结果及报错内容

看不懂这个main中的test方法在干嘛

我的解答思路和尝试过的方法

def test(obj):
obj.shout()
dog = Dog("斑点狗")
print(dog.get_name(), end="")
test(dog)
cat = Cat("波斯猫")
print(cat.get_name(), end="")
test(cat)
这里的Dog类的get_name和shou方法一直调用不到

我想要达到的结果

输出斑点狗汪汪叫
波斯猫喵喵叫

  • 写回答

1条回答 默认 最新

  • 阿_旭 2022-12-06 18:02
    关注

    望采纳,代码如下:

    class Animal(object):
        def shout(self):
            return "叫"
    
    
    class Dog(Animal):
        def __init__(self, name):
            self.__name = name
    
        def get_name(self):
            return self.__name
    
        def shout(self):
            print('汪汪' + super().shout())
    
    
    class Cat(Animal):
        def __init__(self, name):
            self.__name = name
    
        def get_name(self):
            return self.__name
    
        def shout(self):
            print('喵喵'+ super().shout())
    
    #斑点狗汪汪叫
    #波斯猫喵喵叫
    if __name__ == '__main__':
        def test(obj):
            obj.shout()
        dog = Dog("斑点狗")
        print(dog.get_name(), end="")
        test(dog)
        cat = Cat("波斯猫")
        print(cat.get_name(), end="")
        test(cat)
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月14日
  • 已采纳回答 12月6日
  • 修改了问题 12月6日
  • 创建了问题 12月6日

悬赏问题

  • ¥15 Arduino的wifi连接,如何关闭低功耗模式?
  • ¥15 C#连接不上服务器,
  • ¥20 需要帮我远程操控一下,运行一下我的那个代码,我觉得我无能为力了
  • ¥20 有偿:在ubuntu上安装arduino以及其常用库文件。
  • ¥15 请问用arcgis处理一些数据和图形,通常里面有一个根据点划泰森多边形的命令,直接划的弊端是只能执行一个完整的边界,但是我们有时候会用到需要在有很多边界内利用点来执行划泰森多边形的命令
  • ¥30 在wave2foam中执行setWaveField时遇到了如下的浮点异常问题,请问该如何解决呢?
  • ¥750 关于一道数论方面的问题,求解答!(关键词-数学方法)
  • ¥200 csgo2的viewmatrix值是否还有别的获取方式
  • ¥15 Stable Diffusion,用Ebsynth utility在视频选帧图重绘,第一步报错,蒙版和帧图没法生成,怎么处理啊
  • ¥15 请把下列每一行代码完整地读懂并注释出来