鱼C论坛

 找回密码
 立即注册
查看: 1568|回复: 2

[已解决]为什么送了个None

[复制链接]
发表于 2023-6-23 19:07:31 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
>>> class C:
    def get_self(self):
        print(self)

>>> c = C()
>>> print(c.get_self())
<__main__.C object at 0x000001D8A50656D0>
None

我在idle中执行这段代码的时候,多了个None,请问是怎么回事啊,请老师指点。谢谢老师。
最佳答案
2023-6-23 19:08:44
在这段代码中, c.get_self() 方法被调用并打印出了 <__main__.C object at 0x000001D8A50656D0> ,这是 c.get_self() 方法返回的结果。然后, print(c.get_self()) 语句也打印了一个 None 。这是因为 c.get_self() 方法没有明确返回任何值,默认返回 None 。

当你调用一个方法时,如果该方法没有明确使用 return 语句返回一个值,Python会默认返回 None 。在这种情况下, print(c.get_self()) 语句会打印出 None 。

如果你不想打印出 None ,你可以在 get_self() 方法的末尾添加一个 return 语句来返回一个具体的值,或者在 print() 语句中直接调用 c.get_self() 而不是在新的一行中打印它。例如:
class C:    def get_self(self):        print(self)        return "Hello"  # 添加一个return语句来返回一个具体的值c = C()print(c.get_self())  # 直接在print语句中调用c.get_self()
这样, print(c.get_self()) 语句将只打印出 <__main__.C object at 0x000001D8A50656D0> ,而不会打印出 None 。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-6-23 19:08:44 | 显示全部楼层    本楼为最佳答案   
在这段代码中, c.get_self() 方法被调用并打印出了 <__main__.C object at 0x000001D8A50656D0> ,这是 c.get_self() 方法返回的结果。然后, print(c.get_self()) 语句也打印了一个 None 。这是因为 c.get_self() 方法没有明确返回任何值,默认返回 None 。

当你调用一个方法时,如果该方法没有明确使用 return 语句返回一个值,Python会默认返回 None 。在这种情况下, print(c.get_self()) 语句会打印出 None 。

如果你不想打印出 None ,你可以在 get_self() 方法的末尾添加一个 return 语句来返回一个具体的值,或者在 print() 语句中直接调用 c.get_self() 而不是在新的一行中打印它。例如:
class C:    def get_self(self):        print(self)        return "Hello"  # 添加一个return语句来返回一个具体的值c = C()print(c.get_self())  # 直接在print语句中调用c.get_self()
这样, print(c.get_self()) 语句将只打印出 <__main__.C object at 0x000001D8A50656D0> ,而不会打印出 None 。

点评

我很赞同!: 5.0
我很赞同!: 5
谢谢您,理解啦。  发表于 2023-6-23 19:40
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-22 17:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表