Я читал, что все в python является объектом, и поэтому я начал экспериментировать с разными типами и вызывать __str__ на них — сначала я был очень взволнован, но потом я смутился.
>>> "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
-  Почему 
something.__str__()работает для "всего", кромеint? -  Является 
123не объектом типаint?