Python - よく使うモジュール - type 型の取得
- 1. 概要
- 2. 判定していないと
- 3. 型の取得
1. 概要
厳密に型を使わないとえらいことになったりするのです。
本項は、下記の記事を参考にさせていただきました。
「Pythonで型を取得・判定するtype関数, isinstance関数 | note.nkmk.me」
2. 判定していないと
下記のようなソースを書いて
array = [ 'abc', 'def', 1 ]
for obj in array:
print(obj)
if (obj.startswith('a')):
print(' → a で始まっている')
else:
print(' → a で始まっていない')
実行すると
abc
→ a で始まっている
def
→ a で始まっていない
1
Traceback (most recent call last):
File "/home/hogehoge/lang/python/string/type01.py", line 6, in <module>
if (obj.startswith('a')):
AttributeError: 'int' object has no attribute 'startswith'
てなことになっちゃいます。
「string」型じゃないものに「startswith()」は、使っちゃだめよってことですな。
3. 型の取得
前項のような場合。
例えば
array = [ 'abc', 'def', 1 ]
for obj in array:
print(obj)
if (type(obj) is str):
if (obj.startswith('a')):
print(' → a で始まっている')
else:
print(' → a で始まっていない')
else:
print(' → 文字型じゃないのよ')
てな書き方をすれば、結果が
abc
→ a で始まっている
def
→ a で始まっていない
1
→ 文字型じゃないのよ
となります。
すくなくとも、こけたりは、しません。
|
|