Für einen Stringliteral, sagen foo
, wenn ich repr wollen würde, um es durch __repr__
dieser Zeichenfolge aufrufen, alles, was ich tun würde, ist:Warum benötigt das Drucken des __repr__ einer ganzen Zahl Klammern?
>>> 'foo'.__repr__()
"'foo'"
Dies funktioniert auch:
>>> ('foo').__repr__()
"'foo'"
es ist der gleiche Fall für float
s:
>>> 1.0.__repr__()
'1.0'
>>> (1.0).__repr__()
'1.0'
Aber wenn es um Zahlen geht, ist es nicht ganz dasselbe. Der Versuch, __repr__
ohne erste Anwendung Klammer zu nennen wirft einen Fehler
>>> 1.__repr__()
File "<stdin>", line 1
1.__repr__()
^
SyntaxError: invalid syntax
Allerdings, wenn ich Klammern gelten, es funktioniert:
>>> (1).__repr__()
'1'
Also, warum nicht eine ganze Zahl erfordert die Klammer?
weil 1. ist der float 1.0? um Verwirrung zu vermeiden? –
Weil '1.' eine Gleitkommakonstante ist. – ForceBru