You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python子类对象如何正确调用并展示父类方法的信息?

问题原因

你遇到的问题出在Animal类的eat()方法上——这个方法内部直接用print()输出内容,执行完后默认返回None。当你把Canela.eat()放进外部的print语句里时,会先触发方法内部的print输出"eats well",然后把方法返回的None拼接到你的输出字符串里,所以最后会看到额外的None。

解决方案

要把父类方法的信息整合到输出语句里,核心是让eat()方法返回字符串内容,而不是直接在方法内部打印。修改后的代码如下:

class Animal:
    def eat(self):
        # 改为返回字符串,而非直接print
        return "eats well"
    def sleep(self):
        return "sleeps well"

class Dog(Animal):
    def __init__(self, breed, color):
        self.breed = breed
        self.color = color

Canela = Dog("chihuahua", "brown")

# 原正常输出逻辑不变
print("This dog is a", Canela.breed, "and its color is", Canela.color)

# 现在可以把eat()返回的字符串无缝整合到输出里
print("This dog is a", Canela.breed, "and its color is", Canela.color, "and it", Canela.eat())
可选扩展

如果需要保留“单独调用Canela.eat()就能直接看到输出”的功能,可以在方法里同时实现打印和返回:

class Animal:
    def eat(self):
        msg = "eats well"
        print(msg)
        return msg

这样不管是单独调用方法,还是把它嵌入到外部的print语句中,都能得到预期的结果。

内容的提问来源于stack exchange,提问作者Cloud23

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 23:33:25