Доступ к атрибутам литералов работает для всех типов, но не для `int`; Зачем? [Дубликат]

This question already has an answer here:

Why is “1.real” a syntax error but “1 .real” valid in Python? 3 answers

Я прочитал, что все в Python является объектом, и поэтому я начал экспериментировать с различными типами и вызывая__str__ на них & # x2014; Сначала я чувствовал себя очень взволнованным, но потом я запутался.

>>> "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
Why does something.__str__() work for "everything" besides int? Is 123 not an object of type int?

Ответы на вопрос(4)

Ваш ответ на вопрос