Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【Python3.x】ImportError::__new__()メソッドの使い方

__new__メソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

__new__メソッドは、ImportErrorクラスの新しいインスタンスを生成するメソッドです。Pythonにおいて、クラスからオブジェクトを作成する際には、__init__メソッドが初期化を担当するのに対し、__new__メソッドはインスタンスがまだ存在しない段階で、そのインスタンスを実際に作成し、返す役割を持っています。

ImportErrorは、Pythonプログラムがモジュールをインポートしようとした際に、指定されたモジュールが見つからなかったり、読み込みに失敗したりした場合に発生する組み込みの例外です。例えば、存在しないモジュールをimport文で指定した際に、このImportErrorが発生します。

ImportErrorの__new__メソッドは、このようなインポートエラーが発生した際に、そのエラーの情報を保持するImportErrorオブジェクト(インスタンス)を裏側で新しく作り出す出発点となります。これにより、Python実行環境は、発生したエラーの種類や状況を正確に把握し、開発者に伝えることが可能になります。

システムエンジニアとして、通常はこの__new__メソッドを直接呼び出したり、挙動をカスタマイズしたりすることはほとんどありません。しかし、プログラムがエラーをどのように表現し、そのエラーオブジェクトがどのように生成されるかを理解する上で、重要な役割を担っているメソッドであると言えます。

構文(syntax)

1instance = ImportError.__new__(ImportError, "No module named 'example_module'")

引数(parameters)

cls: type, *args, **kwargs

  • cls: type: 新しく作成されるクラスのインスタンス
  • *args: tuple: 位置引数
  • **kwargs: dict: キーワード引数

戻り値(return)

ImportErrorのインスタンス

__new__メソッドは、新しいImportErrorクラスのインスタンスを生成して返します。

関連コンテンツ