言語は通常、3 つの層で構築されます。
プログラムを言語に提供する場合、最初にプログラムを「読み取る」必要があります。次に、読み取ったものを操作できるものに構築します。そして最後に、それを「プログラム」として実行し、(できれば) 結果を出力します。
ここでの問題は、Python の最初の部分 (プログラムを読み取る部分) が混乱していることです。の違いを知るほど賢くないので、混乱しています。
1.234
と
1.letters
何が起こっているように見えるのは、あなたが数字を入力しようとして1.234
いたが、間違いを犯し、代わりに文字を入力したと考えていることです(!)。
1
したがって、これは「実際に」何であるか、およびそれがオブジェクトであるかどうかとは何の関係もありません。そのようなロジックはすべて、先ほど説明した第 2 段階と第 3 段階で発生し、Python はプログラムをビルドして実行しようとします。
あなたが発見したのは、Python がプログラムを読み取る方法の単なる奇妙な (しかし興味深い!) しわです。
【バグと言いますが、こんな感じなのかもしれません。コンピューターにとって読みにくいものがあることが判明しました。python はおそらく、コンピューターがプログラムを簡単に (高速に) 読み取れるように設計されています。この「バグ」を修正すると、プログラムを読み取る python の部分が遅くなったり、複雑になったりする可能性があります。したがって、おそらくトレードオフです。]