I need to determine if a given Python variable is an instance of native type: str
, int
, float
, bool
, list
, dict
and so on. Is there elegant way to doing it?
Or is this the only way:
if myvar in (str, int, float, bool):
# do something
This is an old question but it seems none of the answers actually answer the specific question: "(How-to) Determine if Python variable is an instance of a built-in type". Note that it's not "[...] of a specific/given built-in type" but of a.
The proper way to determine if a given object is an instance of a buil-in type/class is to check if the type of the object happens to be defined in the module __builtin__
.
def is_builtin_class_instance(obj):
return obj.__class__.__module__ == '__builtin__'
Warning: if obj
is a class and not an instance, no matter if that class is built-in or not, True will be returned since a class is also an object, an instance of type
(i.e. AnyClass.__class__
is type
).