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.
Get Python in a Nutshell now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.