Ad

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を使った方が便利です。


Front page   Edit Freeze Diff Backup Upload Copy Rename ReloadPrint View   New Page Page list Search Recent changes   Help   RSS of recent changes (RSS 1.0) RSS of recent changes (RSS 2.0) RSS of recent changes (RSS Atom) Powered by xpWiki
Counter: 867, today: 1, yesterday: 1
Princeps date: 2017-01-03 (Tue) 04:28:00
Last-modified: 2017-01-03 (Tue) 04:35:42 (JST) (867d) by njf
広告

ログイン

ユーザー名:


パスワード:





パスワード紛失


NJF