回答編集履歴
2
修正
answer
CHANGED
@@ -3,8 +3,13 @@
|
|
3
3
|
> None のようなシングルトンと比較をする場合は、常に is か is not を使うべきです。絶対に等値演算子を使わないでください。
|
4
4
|
また、 本当は if x is not None と書いているつもりで、 if x と書いている場合は注意してください - たとえば、デフォルトの値がNoneになる変数や引数に、何かしら別の値が設定されているかどうかをテストする場合です。この「別の値」は、ブール型のコンテクストでは False と評価される(コンテナのような)型かもしれませんよ!
|
5
5
|
|
6
|
-
そして
|
6
|
+
~~そして~~ 以下、別の話となるので今回は無視してください。
|
7
7
|
|
8
8
|
> not ... is ... ではなく、 is not 演算子を使いましょう。これらは機能的に同じですが、後者の方が読みやすく、好ましいです。
|
9
9
|
|
10
|
-
とのことです。すなわち`if 変数 is not None`が良いでしょう。
|
10
|
+
とのことです。すなわち~~`if 変数 is not None`が良いでしょう。~~
|
11
|
+
|
12
|
+
- 「変数が`None`か」判定したい場合は`if 変数 is None`
|
13
|
+
- 「変数が`None`ではないか」判定したい場合は`if 変数 is not None`
|
14
|
+
|
15
|
+
が良いでしょう。
|
1
修正
answer
CHANGED
@@ -1,5 +1,10 @@
|
|
1
1
|
[if not a in b / if a not in b](https://teratail.com/questions/198601)の回答にも挙げられていますが、[PEP8のプログラミングに関する推奨事項](https://pep8-ja.readthedocs.io/ja/latest/#id41)によると
|
2
2
|
|
3
|
+
> None のようなシングルトンと比較をする場合は、常に is か is not を使うべきです。絶対に等値演算子を使わないでください。
|
4
|
+
また、 本当は if x is not None と書いているつもりで、 if x と書いている場合は注意してください - たとえば、デフォルトの値がNoneになる変数や引数に、何かしら別の値が設定されているかどうかをテストする場合です。この「別の値」は、ブール型のコンテクストでは False と評価される(コンテナのような)型かもしれませんよ!
|
5
|
+
|
6
|
+
そして
|
7
|
+
|
3
8
|
> not ... is ... ではなく、 is not 演算子を使いましょう。これらは機能的に同じですが、後者の方が読みやすく、好ましいです。
|
4
9
|
|
5
|
-
とのことです。
|
10
|
+
とのことです。すなわち`if 変数 is not None`が良いでしょう。
|