__init__ と __new__ はどちらも Python オブジェクト指向言語の関数です。その中で、__new__ の使用頻度は低く、__init__ の方が頻繁に使用されます。では、Python の __init__ と __new__ の違いは何ですか? ?詳しくは、次の概要を参照してください。詳細。
Python では、__init__ と __new__ は、オブジェクトの作成および初期化プロセスで使用される 2 つの特別なメソッドです。これらは、何を行うか、いつ実行されるかが異なります。
1、__新しい__
__new__ はオブジェクトの作成に使用される特別なメソッドで、オブジェクトがインスタンス化される前に呼び出されます。
__new__ メソッドはオブジェクトを作成し、新しいオブジェクト インスタンスを返します。
__new__ メソッドは、新しいオブジェクト インスタンスを返す必要があるクラス メソッドです。
__new__ メソッドをオーバーライドすることで、オブジェクト作成ロジックをカスタマイズしたり、他の型のインスタンスを返したりするなど、オブジェクト作成プロセスを制御できます。
2、__初期化__
__init__ は、オブジェクトがインスタンス化された後に呼び出される、オブジェクト初期化のための特別なメソッドです。
__init__ メソッドは、新しく作成されたオブジェクト インスタンスを最初のパラメーターとして受け取り、メソッド内でオブジェクトのプロパティを初期化します。
__init__ メソッドは通常、オブジェクトの初期状態の設定、プロパティへの値の割り当てなどに使用されます。
__init__ メソッドは何も返す必要はありません。その主な目的はオブジェクトを初期化することです。
要約:
__new__ は、オブジェクトがインスタンス化されてオブジェクト インスタンスを作成する前に呼び出されます。
__init__ は、オブジェクトがインスタンス化された後に呼び出され、オブジェクトのプロパティを初期化します。
実際の使用では、通常、オブジェクトの初期化を実現するために __init__ メソッドを書き直すだけで済み、__new__ メソッドを変更する必要は比較的少ないです。