回答編集履歴
4
説明を戻す
answer
CHANGED
@@ -4,5 +4,5 @@
|
|
4
4
|
https://docs.python.org/ja/3/library/stdtypes.html#truth
|
5
5
|
> オブジェクトは、デフォルトでは真と判定されます。ただしそのクラスが `__bool__()` メソッドを定義していて、それが `False` を返す場合、または `__len__()` メソッドを定義していて、それが `0` を返す場合は偽と判定されます。
|
6
6
|
|
7
|
-
`queue.Queue` には `__bool__` も `__len__` も定義されていないため、`bool(queue)` は真と判定、つまり `True` になります。
|
7
|
+
`queue.Queue` には `__bool__` も `__len__` も定義されていないため、`bool(queue)` は常に真と判定、つまり `True` になります。
|
8
8
|
したがって、`while queue:` は `while True:` と同等で無限ループになります。
|
3
説明を少し変更
answer
CHANGED
@@ -4,5 +4,5 @@
|
|
4
4
|
https://docs.python.org/ja/3/library/stdtypes.html#truth
|
5
5
|
> オブジェクトは、デフォルトでは真と判定されます。ただしそのクラスが `__bool__()` メソッドを定義していて、それが `False` を返す場合、または `__len__()` メソッドを定義していて、それが `0` を返す場合は偽と判定されます。
|
6
6
|
|
7
|
-
`queue.Queue` には `__bool__` も `__len__` も定義されていないため、`bool(queue)` は
|
7
|
+
`queue.Queue` には `__bool__` も `__len__` も定義されていないため、`bool(queue)` は真と判定、つまり `True` になります。
|
8
8
|
したがって、`while queue:` は `while True:` と同等で無限ループになります。
|
2
説明を少し変更
answer
CHANGED
@@ -4,5 +4,5 @@
|
|
4
4
|
https://docs.python.org/ja/3/library/stdtypes.html#truth
|
5
5
|
> オブジェクトは、デフォルトでは真と判定されます。ただしそのクラスが `__bool__()` メソッドを定義していて、それが `False` を返す場合、または `__len__()` メソッドを定義していて、それが `0` を返す場合は偽と判定されます。
|
6
6
|
|
7
|
-
`queue.Queue` には
|
7
|
+
`queue.Queue` には `__bool__` も `__len__` も定義されていないため、`bool(queue)` は常に真と判定、つまり `True` になります。
|
8
|
-
したがって、`while queue:` は `while True` と同等で無限ループになります。
|
8
|
+
したがって、`while queue:` は `while True:` と同等で無限ループになります。
|
1
引用部分のエスケープ処理。不要記述削除
answer
CHANGED
@@ -2,11 +2,7 @@
|
|
2
2
|
`while queue:` は `while bool(queue):` と同等です。
|
3
3
|
`bool`関数 は、以下のように真偽値判定します。
|
4
4
|
https://docs.python.org/ja/3/library/stdtypes.html#truth
|
5
|
-
> オブジェクトは、デフォルトでは真と判定されます。ただしそのクラスが __bool__() メソッドを定義していて、それが False を返す場合、または __len__() メソッドを定義していて、それが 0 を返す場合は偽と判定されます。
|
5
|
+
> オブジェクトは、デフォルトでは真と判定されます。ただしそのクラスが `__bool__()` メソッドを定義していて、それが `False` を返す場合、または `__len__()` メソッドを定義していて、それが `0` を返す場合は偽と判定されます。
|
6
6
|
|
7
|
-
> * 偽であると定義されている定数: None と False
|
8
|
-
> * 数値型におけるゼロ: 0, 0.0, 0j, Decimal(0), Fraction(0, 1)
|
9
|
-
> * 空のシーケンスまたはコレクション: '', (), [], {}, set(), range(0)
|
10
|
-
|
11
7
|
`queue.Queue` には、`__bool__` も `__len__` も定義されていないため、`bool(queue)` は常に `True` になります。
|
12
8
|
したがって、`while queue:` は `while True` と同等で無限ループになります。
|