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

为何以下Python代码的print语句会输出None?

为什么代码运行后第二行会输出'None'?

你的代码:

class mobile:
    def __init__(self, name, brand):
        self.name = name
        self.brand = brand
    def get_name(self):
        return self.name
class cpu(mobile):
    def get_name(self):
        print("This mobile has HighTech %s CPU " % self.name)    
brand = cpu("Intel","Sony")
print(brand.get_name())

运行结果:

This mobile has HighTech Intel CPU
None

原因解析:

  • cpu类重写了父类mobile的get_name方法,但这个重写后的方法只有print语句,没有显式的return返回值。
  • 在Python中,所有没有写return语句的函数/方法,默认都会返回None。
  • 当你执行print(brand.get_name())时,先调用get_name()方法,方法内部通过print输出第一行内容;方法执行完后返回默认的None,外层的print又把这个返回值打印出来,就出现了第二行的None。

两种解决方式:

  1. 去掉外层的print,直接调用方法:
brand = cpu("Intel","Sony")
brand.get_name()

运行结果仅输出一行:This mobile has HighTech Intel CPU

  1. 给cpu类的get_name方法添加return语句:
class cpu(mobile):
    def get_name(self):
        msg = "This mobile has HighTech %s CPU " % self.name
        print(msg)
        return msg
brand = cpu("Intel","Sony")
print(brand.get_name())

运行结果会输出两行相同的内容(方法内打印+外层打印返回值),不会出现None:

This mobile has HighTech Intel CPU 
This mobile has HighTech Intel CPU 

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 19:45:50