トップ 差分 一覧 ソース 検索 ヘルプ PDF RSS ログイン

Truth Value Testing.py

[Python]

Pythonではオブジェクトをブール・コンテキストで評価すると、必ず真か偽になる。
以下は、Python Standard Libraryドキュメントから、偽として評価されるオブジェクトの一覧(Python Standard Library -> Built-in Types -> Truth Value Testing)。

None

False

数値型のゼロ。たとえば、0, 0L, 0.0, 0j。

空のシーケンス型。たとえば、'', (), []。

空のマップ型。たとえば、{}。

ユーザー定義クラスの場合、__nonzero__()または__len__()が定義してあって、インスタンスのこれらのメソッドが数値のゼロまたはFalse値を返すと、偽と評価される。

それ以外のすべてのオブジェクトは真になる。
Perlと違って、文字列"0"は真なので注意。

Pythonでは式は真偽評価できないので注意。
CやPerlで可能な、

if a = (b + c) :

という風に、代入と、代入された値の真偽評価を一気に行う操作はできない。
SyntaxErrorが投げられる。