[解決済み] raise exception()」と「raise exception」(括弧なし)の違いは何ですか?
2022-10-25 22:13:10
質問
パラメータレス例外を定義する。
class MyException(Exception):
pass
上げた場合、何か違いがあるのでしょうか。
raise MyException
と
raise MyException()
が見つかりませんでした。単にオーバーロードされた構文なのでしょうか?
どのように解決するのですか?
簡単に言うと、両方の
raise MyException
と
raise MyException()
は同じことをします。 この最初のフォームは、例外を自動的にインスタンス化します。
は ドキュメントにある関連するセクション にはこうあります。
上げる は最初の式を例外オブジェクトとして評価します。これはBaseExceptionのサブクラスかインスタンスでなければなりません。クラスである場合、例外インスタンスは引数なしでクラスをインスタンス化することによって、必要なときに取得されます。
とはいえ、セマンティクスは同じでも、最初の形式は顕微鏡的に速く、2番目の形式はより柔軟です(必要に応じて引数を渡すことができるため)。
Pythonでほとんどの人が使う通常のスタイル(すなわち、標準ライブラリ、一般的なアプリケーション、および多くの書籍で)は、以下のように
raise MyException
を使うことです。 例外を直接インスタンス化するのは、引数を渡す必要があるときだけです。 例えば
raise KeyError(badkey)
.
関連
-
[解決済み] staticmethodとclassmethodの違いについて
-
[解決済み] Pythonのリストメソッドであるappendとextendの違いは何ですか?
-
[解決済み] リストを均等な大きさの塊に分割するには?
-
[解決済み] Pythonのクラスはなぜオブジェクトを継承するのですか?
-
[解決済み] 文字列フォーマット:% vs. .format vs. f-stringリテラル
-
[解決済み] リストにおけるdel、remove、popの違いについて
-
[解決済み] リストとタプルの違いは何ですか?
-
[解決済み】__str__と__repr__の違いは何ですか?
-
[解決済み】プログラムを停止/終了させることなく、完全な例外トレースバックをキャッチして表示する方法は?
-
[解決済み] SQLAlchemy - テーブルのリストを取得する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Pythonのマルチプロセッシングプールimap_unorderedの呼び出しの進捗を表示しますか?
-
[解決済み] Pythonの構文に新しいステートメントを追加することはできますか?
-
[解決済み] django.db.migrations.exceptions.InconsistentMigrationHistory
-
[解決済み] Pandasの'Freq'タグにはどのような値が有効ですか?
-
[解決済み] pandasのタイムゾーンに対応したDateTimeIndexを、特定のタイムゾーンに対応したナイーブなタイムスタンプに変換する。
-
[解決済み] Ctrl-CでPythonスクリプトを終了できない
-
[解決済み] Cythonのコードを含むPythonパッケージはどのように構成すればよいのでしょうか?
-
[解決済み] 異なる順序で同じ要素を持つ2つのJSONオブジェクトを等しく比較するには?
-
[解決済み] Pythonでリストが空かどうかをチェックする方法は?重複
-
[解決済み] Pythonの抽象属性[重複]について