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

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

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

作成日: 更新日:

基本的な使い方

PermissionError.__new__メソッドは、ファイルやディレクトリへのアクセス権限がない場合に発生するPermissionErrorという組み込みエラーの新しいインスタンスを生成するメソッドです。

このメソッドは、エラーが発生した状況を示す情報(例えば、エラーメッセージや関連するファイルパスなど)を受け取り、それらの情報を持つ新しいPermissionErrorオブジェクトを作成します。具体的には、プログラムがファイルの読み書きやディレクトリの作成・削除を試みた際に、OSから適切な権限がないと判断された場合、Pythonインタープリタが内部でこの__new__メソッドを自動的に呼び出します。これにより、エラーに関する情報が正しく格納されたPermissionErrorのインスタンスがメモリ上に確保されます。

__new__メソッドは、クラスのインスタンスを生成する最初の段階で実行され、そのインスタンスがどのような形であるべきかを決定します。その後、生成されたインスタンスの初期設定を行うための__init__メソッドが呼び出されます。PermissionErrorの場合、この__new__メソッドが、後続のエラー処理で利用されるエラーメッセージやerrno(エラー番号)といった情報を格納できるPermissionErrorオブジェクトを確実に生成する役割を担っています。

システムエンジニアを目指す皆さんにとって、この__new__メソッドを直接呼び出すことは稀であり、ほとんどの場合、Pythonが内部で適切に処理します。このメソッドの存在により、権限に関する問題が発生した際に、一貫性のあるPermissionErrorオブジェクトが生成され、開発者はtry...except文などを用いてこれらのエラーを捕捉し、適切にハンドリングすることが可能になります。

構文(syntax)

1PermissionError.__new__(PermissionError, "アクセスが拒否されました")

引数(parameters)

cls: type, *args, **kwargs

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

戻り値(return)

PermissionError

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

関連コンテンツ