xw5643516 2023-08-28 19:32 采纳率: 100%
浏览 7
已结题

为什么父类中的getName没输出

子类重写父类的构造方法

class Father:
def init(self, name):
self.name = name
print("name: %s" % self.name)

def getName(self):
    return "Father %s" % self.name
    # print("父类方法")

class Son(Father):
# 子类重写父类的构造方法
def init(self, name):
# 使用super继承父类构造方法
super().init(name)
self.name = name
print("hi")

# 子类重写父类的getName
def getSonName(self):
    # 子类方法实现包含父类方法 使用super().父类方法
    super().getName()
    return "Son %s" % self.name

son = Son("runoob") # 继承父类的构造方法,打印name: runoob hi
print(son.getSonName()) # 为什么父类中的getName没输出???

  • 写回答

2条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-08-28 22:29
    关注

    【以下回答由 GPT 生成】

    问题原因是在子类的 getSonName() 方法中没有将父类的 getName() 方法的输出打印出来。需要在子类的 getSonName() 方法中添加 print(super().getName()) 来输出父类的 getName() 方法。

    修改后的代码如下:

    class Father:
        def __init__(self, name):
            self.name = name
            print("name: %s" % self.name)
    
        def getName(self):
            return "Father %s" % self.name
    
    class Son(Father):
        def __init__(self, name):
            super().__init__(name)
            self.name = name
            print("hi")
    
        def getSonName(self):
            print(super().getName())  # 添加这一行来输出父类的getName()方法
            return "Son %s" % self.name
    
    son = Son("runoob")
    print(son.getSonName())
    

    运行结果为:

    name: runoob
    hi
    Father runoob
    Son runoob
    

    这样就可以看到父类的 getName() 方法输出到了控制台。


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 10月22日
  • 已采纳回答 10月14日
  • 创建了问题 8月28日

悬赏问题

  • ¥15 vs2019的js智能提示
  • ¥15 关于#开发语言#的问题:FDTD建模问题图中代码没有报错,但是模型却变透明了
  • ¥15 uniapp的h5项目写一个抽奖动画
  • ¥15 TeleScan不能修改bar
  • ¥100 请问我基于逐飞库写的这个有关于mp u6050传感器的函数,为什么输出的值是固定的?
  • ¥15 hadoop中启动hive报错如下怎么解决
  • ¥15 如何优化QWebEngineView 加载url的速度
  • ¥15 关于#hadoop#的问题,请各位专家解答!
  • ¥15 如何批量抓取网站信息
  • ¥15 Spring Boot离线人脸识别