Pythonでは型の判定にtypeやisinstanceを使います。

typeは厳密にその型を何かを判定するのに使います。

# -*- coding: utf-8 -*-
testString = "test"
utfTestString = u"テスト"

print type(testString)
print type(utfTestString)

print type(testString) == str
print type(utfTestString) == str

結果

<type 'str'>
<type 'unicode'>
True
False

ただし、typeによる判定は、継承したクラスもFalseにしてしまいます。 そのため、せっかくスーパークラスと同じように使えるようにクラスを継承したのに、そのクラスが同じ処理で使えなくなってしまい、あまり使い勝手は良くありません。

これを回避するためには、継承まで含めて型チェックするisinstanceを使います。

先ほどの例で言うとunicodeとstrは同じbasestringを継承しているので、

print isinstance(testString, basestring)
print isinstance(utfTestString, basestring)

結果

True
True

となり、isinstanceは両方ともTrueになります。 基本的に型チェックはisinstanceを使った方が便利です。


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード印刷に適した表示   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom Powered by xpWiki
Counter: 248, today: 3, yesterday: 4
初版日時: 2017-01-03 (火) 13:28:00
最終更新: 2017-01-03 (火) 13:35:42 (JST) (116d) by njf
広告

ログイン

ユーザー名:


パスワード:





パスワード紛失


NJF