変数の型判定にはisinstanceを使え!

変数の型判定にはisinstanceを使え!


value = xxx

if isinstance( value, tuple ):

    print "This is Tuple type"

elif isinstance( value basestring ):

    print "This is str or unicode"

elif isinstance( value, float ):

    print "This is float"

elif isinstance( value,int ):

    print "This is Int"

  basestringで、str型もしくはunicode型を判定できる。
  なお、typesをimportして、TupleTypeとかStringTypesとかと比べてもOK。

>>>

>>> from types import *

>>> value=u"あほ"

>>> isinstance(value,StringTypes)

True

>>> dir()

['BooleanType', 'BufferType', 'BuiltinFunctionType', 'BuiltinMethodType', 'Class

Type', 'CodeType', 'ComplexType', 'DictProxyType', 'DictType', 'DictionaryType',

 'EllipsisType', 'FileType', 'FloatType', 'FrameType', 'FunctionType', 'Generato

rType', 'GetSetDescriptorType', 'InstanceType', 'IntType', 'LambdaType', 'ListTy

pe', 'LongType', 'MemberDescriptorType', 'MethodType', 'ModuleType', 'NoneType',

 'NotImplementedType', 'ObjectType', 'SliceType', 'StringType', 'StringTypes', '

TracebackType', 'TupleType', 'TypeType', 'UnboundMethodType', 'UnicodeType', 'XR

angeType', '__builtins__', '__doc__', '__name__', 'value']

>>> isinstance(value,TupleType)

False

>>>