2015年11月5日

純粋なintチェック

Python では、bool型は int型のサブクラスとして定義されています。
その結果、、、
>>> b = True
>>> isinstance(b, int)
True  # boolはintの一種!
というやや意外な結果が得られます。


bool ではない純粋な int の型チェックをするには、以下のようにします。
>>> i = 10
>>> isinstance(i, int) and not isinstance(i, bool)
True


上の条件式は関数にしておけば扱いやすくなるかと思います。
>>> def is_int(i):
>>>     return isinstance(i, int) and not isinstance(i, bool)
...
>>> is_int(10)
True
>>> is_int(True)
False

0 件のコメント:

コメントを投稿