Name
type
Synopsis
type(obj)Returns the type object that represents the type of
obj (i.e., the most-derived type object of
which obj is an instance). All classic
instance objects have the same type
(InstanceType), even when they are instances of
different classes; use isinstance (covered later
in this chapter) to check whether an instance belongs to a particular
class. In the new-style object model, however,
type(
x
)
is x
.__class__ for
any x.
Checking
type(
x
)
for equality or identity to some other type object is known as
type-checking. Type-checking is rarely appropriate in production
Python code because it interferes with polymorphism. The normal idiom
in Python is to try to use x as if it were
of the type you expect, handling any problems with a
try/except statement, as
discussed in Chapter 6. When you must type-check,
typically for debugging purposes, use isinstance
instead.
isinstance(
x,atype
)
is a somewhat lesser evil than
type(
x
)
is
atype, since at
least it accepts an x that is an instance
of any subclass of atype, not just a
direct instance of atype itself.