ホームページ >バックエンド開発 >Python チュートリアル >Python で「0 < 0 == 0」が「False」と評価されるのはなぜですか?
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 サイトの他の関連記事を参照してください。