Der Zugriff auf Attribute für Literale funktioniert bei allen Typen, jedoch nicht bei `int`. Warum? [Duplikat]

Diese Frage hat hier bereits eine Antwort:

Warum ist "1.real" ein Syntaxfehler, aber "1.real" in Python gültig? 3 Antworten

Ich habe gelesen, dass alles in Python ein Objekt ist, und als solches habe ich angefangen, mit verschiedenen Typen zu experimentieren und aufzurufen__str__ auf sie - zuerst war ich wirklich aufgeregt, aber dann wurde ich verwirrt.

>>> "hello world".__str__()
'hello world'
>>> [].__str__()
'[]'
>>> 3.14.__str__()
'3.14'
>>> 3..__str__()
'3.0'
>>> 123.__str__()
  File "<stdin>", line 1
    123.__str__()
              ^
SyntaxError: invalid syntax
Warum tutsomething.__str__() arbeite für "alles" außerdemint?Ist123 nicht einObjekt vom Typint?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage