Python类中无return语句的自定义方法返回None问题求助
原因说明
Python 中的所有函数和类方法,在没有显式编写 return 语句的情况下,执行完成后都会默认返回 None。
你遇到的重复输出 None 的问题,是代码里触发了两次打印逻辑:
- 调用类方法时,方法内部的
print()语句会先输出对应的提示文本 - 你在调用方法的外层又套了一层
print(),会把方法的返回值打印出来,因为方法没有自定义返回内容,所以打印的就是默认的None
修复方案
方案一:直接调用类方法,不用外层嵌套 print()
你的类方法本身已经内置了打印逻辑,直接调用即可输出内容,不需要再用 print 包裹调用语句:
msg1 = GreetingMessage() # 直接调用,不需要套print msg1.welcome_message() msg1.on_process_message() msg1.thank_you_message()
方案二:修改类方法,返回文本内容
如果你需要拿到方法输出的文本做后续处理,可以把方法内部的 print 改为 return,调用时再用 print 打印返回值:
class GreetingMessage: def welcome_message(self): return "you are welcome to python" def thank_you_message(self): return "Ok Bye Thank You" def on_process_message(self): return "process is on progress" msg1 = GreetingMessage() print(msg1.welcome_message()) print(msg1.on_process_message()) print(msg1.thank_you_message())
两种方案都可以消除多余的 None 输出,根据你的实际使用需求选择即可。
内容的提问来源于stack exchange,提问作者guru prathosh
相关产品推荐
相关产品推荐

