在Python 2.7(及更高版本)中,
所以如果你这样做
print "box:", box
它首先打印字符串“ box:”,然后
box打印一个空格,然后打印任何内容(其
__str__功能的结果)。
如果你这样做
print ("box:", box)您给了 一个 参数,一个由两个元素(“ box:”和object
box)组成的元组。
元组作为其表示形式进行打印(主要用于调试),因此它调用
__repr__其元素的,而不是其元素
__str__(应给出用户友好的消息)。
这就是你看到的区别:
(The width is: 100, and the height is:200)是你的箱子的结果
__str__,但
<__main__.Rectangle instance at0x0293BDC8>就是它
__repr__。
在Python 3及更高版本中,
print()是与其他函数一样的正常函数(因此
print(2, 3)打印
"2 3"且
print 2,3是语法错误)。如果要在Python 2.7中使用
from __future__ import print_function
在您的源文件的顶部,以使其稍作准备。



