对于字符串文字,比如说foo
,如果我想通过调用此字符串的__repr__
来获取它,那么我所做的就是:
>>> 'foo'.__repr__()
"'foo'"
这也有效:
>>> ('foo').__repr__()
"'foo'"
float
s的情况相同:
>>> 1.0.__repr__()
'1.0'
>>> (1.0).__repr__()
'1.0'
但是当谈到整数时,它并不完全相同。试图在没有先应用括号的情况下调用__repr__
会引发错误
>>> 1.__repr__()
File "<stdin>", line 1
1.__repr__()
^
SyntaxError: invalid syntax
但是,当我应用括号时,它可以工作:
>>> (1).__repr__()
'1'
那么,为什么整数需要括号?
答案 0 :(得分:3)
1.__repr__
与浮点解析冲突(例如:1.0
),因此您必须插入括号以使python理解该点适用于1
对象。
答案 1 :(得分:3)
或者,你可以
1 .__repr__()
问题是1.
是一个浮点数。所以你必须在1
和.
之间加一个空格或括号。
答案 2 :(得分:3)
只需在点前加一个空格:
>>> 1 .__repr__()
'1'
从文字“部分”浮动1
中消除文字int 1.
的歧义。