|
1: 2017-01-03 (火) 04:28:00 njf |
| + | 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にしてくれます。 |
Counter: 2109,
today: 1,
yesterday: 1