型判別とか

未知のモジュール(ドキュメント無しw)を探索する必要があったのでdir()でメンバーを列挙しつつ型を調べてみた。
はじめは

import nazo

for x in dir(nazo):
	print x
	print type(getattr(nazo, x))

という感じでやっていたのだがtype()の返り値がよくわからない。
代りにマニュアルで発見した次の方法をためしてみた。

import nazo
import inspect

for member in inspect.getmember(nazo):
	if inspect.isclass(member[1]):
		print "class: %s" % member[0]
	elif inspect.isroutine(member[1]):
		print "function: %s" % member[0]
	else:
		print "other: %s" % member[1]

こっちのほうが若干使いやすいような気がする。
他にもマニュアルで、typesモジュールやis演算子、isinstance()なんかを発見。
いまいち使い分けがわからないのであった・・・