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.