を使用することで積極的な害はありますif False in [a, b, c, d]
か?
コードのサイズを縮小し、インタープリターで機能します。しかし、そのような状態が引き起こす可能性のある積極的な害はありますか?
を使用することで積極的な害はありますif False in [a, b, c, d]
か?
コードのサイズを縮小し、インタープリターで機能します。しかし、そのような状態が引き起こす可能性のある積極的な害はありますか?
いいえ、通常、そのような状態が引き起こす害はありません。
比較演算子はin
何も変更しません。変数a
、b
、c
またはのいずれかd
が実際に0
またはFalse
である場合、テストは成功し、そうでない場合は失敗します ( を返しFalse
ます)。リストに (一時的に) 収集された 4 つの変数自体は影響を受けません。
(なぜ0
? は Python の and のサブクラスであるためです。同様bool
に、インタープリターで試してみてください。 を返し、さらに驚きを試してください)。int
False == 0
True
False in [0]
True
issubclass(bool, int)
True
True + 1
1 つの例外は、誰かがインスタンスの状態を変更__eq__
するカスタム クラスに等価フックを作成するというミスを犯した場合です。これは、そのカスタム クラスの大きなバグであり、ステートメント自体に固有のものではありません。in