ホームページ >バックエンド開発 >Python チュートリアル >Python で「0 < 0 == 0」が「False」と評価されるのはなぜですか?

Python で「0 < 0 == 0」が「False」と評価されるのはなぜですか?

DDD
DDDオリジナル
2024-12-09 03:27:12761ブラウズ

Why Does `0 < 0 == 0` Evaluate to `False` in Python?

Python の連鎖比較: 0 の謎を解く 0 == 0 虚偽

Python の標準ライブラリ コードの奥深くに、Python 2.6 の Queue.py に次のような不可解な構造が存在します。
def full(self):
    """Return True if the queue is full, False otherwise
    (not reliable!)."""
    self.mutex.acquire()
    n = 0 < self.maxsize == self._qsize()
    self.mutex.release()
    return n

なぜこの式 0 が成り立つのか連鎖比較: Python のショートカット

Python には「連鎖比較」と呼ばれる独自の機能により、範囲比較をより簡潔に表現できます。たとえば、次は連鎖比較を使用するのと同じです:
0 < x <= 5

内部的には、これらの連鎖比較は異なる解釈されます。 Python は式を左から右に評価し、False と評価された最初の比較の値を返します。この場合、0 対照的に、括弧が導入されると、次の括弧の前に括弧内の式の評価が強制的に完了します。比較が適用されます。これにより、連鎖比較動作が無効になります。その結果、かっこを追加すると、期待される True 値が得られます。
(0 < 0) == 0
0 < (0 == 0)

したがって、full() メソッドの式、0 < self.maxsize == self._qsize()、self.maxsize が 0 の場合は False と評価され、サイズ制限が 0 に設定されている場合にキューが満杯にならないことを示します。

以上がPython で「0 < 0 == 0」が「False」と評価されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。