【Python3.x】InterruptedError::__new__()メソッドの使い方
__new__メソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
`__new__メソッドはInterruptedErrorクラスの新しいインスタンスを生成する際に実行されるメソッドです。このメソッドは、クラスからオブジェクトがメモリ上に作られる最初の段階を担当します。具体的には、InterruptedErrorという型を持つオブジェクトを新しく用意し、そのオブジェクトへの参照を返す役割を担っています。
InterruptedErrorはPythonの組み込み例外の一つで、プログラムがシステムコールなどの低レベルな処理を実行している最中に、オペレーティングシステムからの割り込み(例えば、ユーザーがキーボードでCtrl+Cを押してプログラムを中断しようとした場合など)によって、その処理が途中で中断された場合に発生します。
そのため、InterruptedError.__new__メソッドは、このような割り込み中断の状況を示すためのInterruptedErrorオブジェクトを実際に「作り出す」役割を果たしています。通常、オブジェクトが生成される際には、まず__new__メソッドが呼び出されてオブジェクトそのものが作成され、その後、__init__メソッドが呼び出されてそのオブジェクトが初期化されます。
システムエンジニアの方がInterruptedErrorのインスタンスを直接__new__メソッドを呼び出して生成することは通常ありません。Pythonの例外処理メカニズムが、必要な状況でこのメソッドを自動的に呼び出し、適切な例外オブジェクトを用意します。このメソッドは、例外が発生した際に、その状況を表すInterruptedErrorオブジェクトがどのようにしてメモリ上に準備されるかという、Python内部の仕組みの一部を担っています。
構文(syntax)
1InterruptedError(*args)
引数(parameters)
cls: type, *args, **kwargs
- cls: type: 新しいインスタンスを生成するクラス
- args: tuple: 位置引数
- kwargs: dict: キーワード引数
戻り値(return)
InterruptedError
__new__メソッドは、新しいInterruptedErrorクラスのインスタンス(オブジェクト)を生成して返します。