【Python3.x】RuntimeWarning::__new__()メソッドの使い方
__new__メソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
__new__メソッドは、Pythonにおいてクラスの新しいインスタンスを生成する際に、initメソッドよりも前に実行される特殊なメソッドです。このメソッドの主な役割は、オブジェクトがメモリ上に確保され、初期化される前の「生のオブジェクト」を作成し、そのインスタンスを返却することです。
このメソッドは、最初の引数としてインスタンス化しようとしているクラス自身(慣習的にclsと表記)を受け取ります。その後に、コンストラクタ(initメソッド)に渡されるすべての引数を受け取ることが可能です。通常、実装では親クラスのnewメソッドをsuper()を使って呼び出し、その返り値であるインスタンスを返します。
__new__メソッドはオブジェクトを「作成」する役割を担い、対照的にinitメソッドは作成されたオブジェクトを「初期化」(属性を設定するなど)する役割を担います。
RuntimeWarningクラスのようなPythonの組み込み警告クラスにおいても、そのインスタンスが作成される際には、このnewメソッドが内部的に呼び出されます。これにより、警告オブジェクトとしての基本的な構造がメモリ上に準備され、その後にinitメソッドによる初期化が行われます。newはすべてのPythonオブジェクト生成の基礎であり、インスタンス生成プロセスを根本的にカスタマイズしたい場合にのみオーバーライドされます。
構文(syntax)
1RuntimeWarning("これは実行時警告のメッセージです。")
引数(parameters)
cls, *args
- cls: RuntimeWarningクラス自体
- *args: RuntimeWarningのインスタンス化時に渡される引数。通常はメッセージ文字列。
戻り値(return)
RuntimeWarning
__new__ メソッドは、新しく作成されるインスタンス自身を返します。