1. ホーム
  2. python

[解決済み] Pythonのnot Noneテスト [重複]について

2022-03-21 08:31:56

質問

このうち、テストは一つもありません。

if val != None:

if not (val is None):

if val is not None:

また、その理由も教えてください。

解決方法は?

if val is not None:
    # ...

が設定されていないことをテストする Pythonic イディオムです。 None . このイディオムは,特に デフォルトのパラメータを持つキーワード関数を宣言する . is は、PythonのIDをテストします。のインスタンスは1つしかないため None は、実行中のPythonスクリプト/プログラム内に存在します。 is はそのための最適なテストです。として Johnsywebが指摘する で説明されています。 PEP 8 の下にある "プログラミングの推奨事項" を参照してください。

なぜこれが望ましいかというと

if not (val is None):
    # ...

は、単に Pythonの禅 : "読みやすさは重要です "良いPythonは、多くの場合、良い 疑似コード .