ページへ戻る

− Links

 印刷 

Python​/型の判定(type,isinstance) のバックアップ差分(No.1) :: NJF Wiki

xpwiki:Python/型の判定(type,isinstance) のバックアップ差分(No.1)

  Next »[4]
1: 2017-01-03 (火) 04:28:00 njf[5] ソース[6] バックアップ No.1 を復元して編集[7]
Line 1: Line 1:
 +Pythonでは型の判定にtypeやisinstanceを使います。
 +typeは厳密にその型を何かを判定するのに使います。
 +
 + # -*- coding: utf-8 -*-
 + testString = "test"
 + utfTestString = u"テスト"
 +
 + print type(testString) == str
 + print type(utfTestString) == str
 +
 +結果
 + True
 + False
 +
 +ただし、typeによる判定は、継承したクラスもFalseにしてしまいます。
 +そのため、せっかくスーパークラスと同じように使えるようにクラスを継承したのに、そのクラスが同じ処理で使えなくなってしまい、あまり使い勝手は良くありません。
 +
 +そのため、型チェックは継承まで含めてチェックするisinstanceの方が便利です。
 +
 +先ほどの例で言うとunicodeとstrは同じbasestringを継承しているので、
 +
 + print isinstance(testString, basestring)
 + print isinstance(utfTestString, basestring)
 +
 +結果
 + True
 + True
 +
 +となり、isinstanceは文字列的なクラスをTrueにしてくれます。
  Next »[4]