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を使った方が便利です。
ぺージ情報 | |
---|---|
ぺージ名 : | Python/型の判定(type,isinstance) |
ページ別名 : | 未設定 |
ページ作成 : | njf |
閲覧可 | |
グループ : | すべての訪問者 |
ユーザー : | すべての訪問者 |
編集可 | |
グループ : | すべての訪問者 |
ユーザー : | すべての訪問者 |
Counter: 2097,
today: 2,
yesterday: 0
初版日時: 2017-01-03 (火) 04:28:00
最終更新: 2017-01-03 (火) 04:35:42 (JST) (2669d) by njf