首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“`print(9)”和“`print(str(9))”的区别

“`print(9)”和“`print(str(9))”的区别
EN

Stack Overflow用户
提问于 2016-09-05 06:48:29
回答 4查看 2.3K关注 0票数 1

当两个函数的输出相同时,print(9)print(str(9))之间的区别是什么?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-09-05 06:52:47

print总是首先尝试对给定的对象调用__str__。在第一种情况下,int实例的__str__ 9'9'

在第二种情况下,首先在9上显式调用9(它调用其__str__并生成'9')。然后,print调用'9'__str__,如果与字符串实例一起提供,该__str__将返回它,因为它将再次生成'9'

因此,在这两种情况下,print最终都会打印出类似的输出。

票数 2
EN

Stack Overflow用户

发布于 2016-09-05 06:52:02

来自文献资料

所有非关键字参数都像str()那样转换为字符串。

票数 2
EN

Stack Overflow用户

发布于 2016-09-05 06:56:40

代码语言:javascript
复制
print(str(9))
print(9)

输出:

代码语言:javascript
复制
9
9

产出没有变化。但是如果我们通过执行检查数据类型,

代码语言:javascript
复制
print(type(str(9)))
print(type(9))

然后我们得到输出,

代码语言:javascript
复制
<class 'str'> 
<class 'int'>

因此,您可以看到,类型是不同的,但输出是相同的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39325178

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档