Python の __init__ と __new__ の違い!

  __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__ メソッドを変更する必要は比較的少ないです。

おすすめ

転載: blog.csdn.net/oldboyedu1/article/details/131788309