pythonタイプはオブジェクトに属し、変数に属しません


pythonタイプはオブジェクトに属し、変数に属しません
この言葉はどう理解しますか.じゃあ見て行こう
a = 3
a = 'python'
a = 1.23
はaに3回、1回目は整数、2回目は文字列、3回目は浮動小数点数という賦値がC、C++、JAVA言語に慣れた子供靴には慣れていないので、aが整数から文字列に変わるなんておかしいと思っているのかもしれません.
実はそうではありません.pythonでは、変数名にタイプがなく、タイプはオブジェクトに属します.したがって、上記の例では、1回目のaは整形オブジェクトを指し、2回目のaは文字列オブジェクトを指し、3回目のaは浮動小数点型オブジェクトを指すと理解できる.したがって,変数aのタイプは実際には変更されず,異なるタイプのオブジェクトを指すだけである.pythonのタイプは変数ではなくオブジェクトに関連付けられていることをもう一度覚えておきましょう.
前のセクションでは、
pythonダイナミックタイプ
「各オブジェクトには2つの標準的なヘッダ情報があります.1つのタイプ識別子がこのオブジェクトのタイプを示すとともに、このオブジェクトを回収できるかどうかを決定するために参照されたカウンタがあります」と述べています.では、最初の文では、整数オブジェクト3には、値3とヘッダ情報が含まれており、pythonに整数オブジェクトであることを伝えます.
では、2番目の文を実行すると、文字列オブジェクトをaに引用したと考える人がいますが、整数オブジェクト3はどうすればいいのでしょうか.
答えは:対象のゴミ収集
pythonでは、変数名が新しいオブジェクトに付与されるたびに、以前のオブジェクトが占有していた空間が回収されます.もちろん、他の変数に参照されていない場合です.このような対象空間を回収する技術をゴミ収集と呼ぶ.このメカニズムは、廃棄されたオブジェクト空間を自動的にフリーメモリ空間プールに入れ、後のオブジェクトの使用を待ってpythonは、整数オブジェクト3が他の変数に参照されないことをどのように保証しますか?内部では、pythonは、各オブジェクトのカウンタによって、このオブジェクトへの参照回数を記録することによって、この機能を完了します.このカウンタがゼロに設定されると、このオブジェクトのメモリ領域は自動的に回収されます.ごみ収集が最も直接的で、空間の解放を気にすることなくスクリプトでオブジェクトを任意に使用できるというメリットが感じられます.