ページへ戻る

− Links

 印刷 

Python​/型の判定(type,isinstance) の変更点 :: NJF Wiki

xpwiki:Python/型の判定(type,isinstance) の変更点

« Prev[3]  
1: 2017-01-03 (火) 04:28:00 njf[4] ソース[5] バックアップ No.1 を復元して編集[6] 現: 2017-01-03 (火) 12:35:42 njf[4] ソース[7] 編集[8]
Line 6: Line 6:
 testString = "test"  testString = "test"
 utfTestString = u"テスト"  utfTestString = u"テスト"
 +  
 + print type(testString) 
 + print type(utfTestString) 
 + 
 print type(testString) == str  print type(testString) == str
 print type(utfTestString) == str  print type(utfTestString) == str
結果 結果
 + <type 'str'>
 + <type 'unicode'>
 True  True
 False  False
Line 17: Line 22:
そのため、せっかくスーパークラスと同じように使えるようにクラスを継承したのに、そのクラスが同じ処理で使えなくなってしまい、あまり使い勝手は良くありません。 そのため、せっかくスーパークラスと同じように使えるようにクラスを継承したのに、そのクラスが同じ処理で使えなくなってしまい、あまり使い勝手は良くありません。
-そのため、型チェックは継承まで含めてチェックするisinstanceの方が便利です。+これを回避するためには、継承まで含めて型チェックするisinstanceを使います。
先ほどの例で言うとunicodeとstrは同じbasestringを継承しているので、 先ほどの例で言うとunicodeとstrは同じbasestringを継承しているので、
Line 28: Line 33:
 True  True
-となり、isinstanceは文字列的なクラスをTrueにしてくれます。+となり、isinstanceは両方ともTrueになります。 
 +基本的に型チェックはisinstanceを使った方が便利です。
« Prev[3]