- ソース を表示
- Python/型の判定(type,isinstance) へ行く。
1: 2017-01-03 (火) 04:28:00 njf | 現: 2017-01-03 (火) 12:35:42 njf | ||
---|---|---|---|
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を使った方が便利です。 |
- Python/型の判定(type,isinstance) のバックアップ一覧
- Python/型の判定(type,isinstance) のバックアップ差分(No. All)
- 1: 2017-01-03 (火) 04:28:00 njf
- 現: 2017-01-03 (火) 12:35:42 njf
ぺージ情報 | |
---|---|
ぺージ名 : | Python/型の判定(type,isinstance) |
ページ別名 : | 未設定 |
ページ作成 : | njf |
閲覧可 | |
グループ : | すべての訪問者 |
ユーザー : | すべての訪問者 |
編集可 | |
グループ : | すべての訪問者 |
ユーザー : | すべての訪問者 |
Counter: 2087,
today: 1,
yesterday: 0