YAMAGUCHI::weblog

噛み付き地蔵に憧れて、この神の世界にやってきました。マドンナみたいな男の子、コッペです。

型チェックをする

動機

Pythonに限らず動的型付けな言語は変数を扱うときに型に気をつける必要があります。いままでは割とざーっと作ってしまっていたので型の扱いはKnownでやっていたのですが、ソースを公開したりしているので多少気をつけていこうかなと思いました。

方法

typesをimportします。

下記に一覧をメモしておきます。たいてい<型名>Typeな感じです。

定義された名前
None NoneType
Boolean BooleanType
整数 IntType
バイト文字列 StringType
Unicode UnicodeType
文字列(Byte & Unicode) StringTypes
リスト ListType
辞書 DictType, DictionaryType
関数 FunctionType, LambdaType
ジェネレータ GeneratorType
クラス ClassType
インスタンス InstanceType

イディオム

しかしながら、直接type関数を使うのもスマートではないんで通常は下記のようにisinstance関数を使いいます。

import types
isinstance(arg0, unicode)
isinstance(arg1, class1)