可変/不変オブジェクトとは
不変オブジェクト、オブジェクトが指すメモリ内の値は変更できません。変数を変更すると、参照している値は変更できないため、元の値をコピーして変更することと同じになり、新しいアドレスが開かれ、変数はこの新しいアドレスを指すことになります。
変数オブジェクト、オブジェクトが指すメモリ内の値を変更できます。変数 (正確には参照) が変更されると、実際にはその変数が参照する値が直接変更されます。コピーは発生せず、新しいアドレスも開かれません。平たく言えば、その場で変更されます。
Python では、数値型 (int と float)、文字列 str、およびタプル tuple はすべて不変型です。リスト、ディクショナリ、セットは変数タイプです。
コードを見る方が直感的です。 セット コレクションのコードを見てください:
abb = {1, 2, 3} acc = abb print(id(abb), id(acc)) acc.add(4) print(abb) # {1, 2, 3, 4} print(id(abb), id(acc)) # 相等
変数オブジェクトは変更できます。ポイントされたオブジェクトは変更できるため、コピーを作成してから変更する必要はなく、その場で変更するだけです。そのため、新しいメモリは開かれず、変更の前後で ID は変化しません。
もちろん、これは不変オブジェクトの場合には当てはまりません。これと比較できます。
abc = 3 dd = abc dd = 43 print(abc) # 3,并不随dd的改变而改变
ただし、コピーの場合は、コンテンツがコピーされるだけで、転送はされません。参考にせずに。これは、元のリストを変更せずにリストの値を使用したい場合に特に便利です。
rree以上がPython の集合コレクションは変数型ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。