ホームページ >バックエンド開発 >Python チュートリアル >不変型と可変型: 操作性の違いは何ですか?

不変型と可変型: 操作性の違いは何ですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-25 08:08:57221ブラウズ

Immutable vs. Mutable Types: What's the Difference in Their Operability?

不変型と可変型

プログラミングでは、型とは変数が属するカテゴリまたはデータ構造を指します。これらの型は、変更方法に基づいて不変または可変に分類できます。

不変型

不変型では、一度割り当てられた内容の変更は許可されません。代わりに、更新されたデータを含む新しいオブジェクトで自分自身を置き換えます。 Float は不変型の例です。たとえば、提供されたコードに見られるように、RoundFloat と呼ばれる float の新しいサブクラスを作成しても、型の不変性は変わりません。これは、new メソッドがオブジェクトの新しいインスタンスの作成を担当し、既存のオブジェクトを変更しないためです。

Mutable Types

Mutable一方、型はメモリ内の内容を変更できます。これにより、元の参照が更新されたオブジェクトを指すことができるようになります。提供されている例では、SortedKeyDict_a には example() などのオブジェクトを操作するメソッドが含まれているため、変更可能な型です。これらのメソッドは、新しいオブジェクトを作成せずにオブジェクトの状態を変更できます。

操作性

SortedKeyDict と RoundFloat で実行されるテストに関しては、違いはそれらの動作にあります。指定された設定値。 SortedKeyDict は変更可能であるため、明示的に example() メソッドを呼び出さなくても変更が可能です。キーを内部でソートし、辞書を返します。ただし、RoundFloat は不変であるため、この動作をサポートしません。その結果、new を呼び出さずに整数を RoundFloat に渡そうとすると、エラーのフラグが立てられます。

以上が不変型と可変型: 操作性の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。