Type of an object: ‘obj.__class__’ versus ‘type(obj)’

Ben Finney ben+python at benfinney.id.au
Mon Dec 16 05:50:17 CET 2013

Ned Batchelder <ned at nedbatchelder.com> writes:

> Generally, my answer would be, "You probably don't need the type as
> much as you think you do."  
> […]
> Also, don't overlook isinstance().


> But when you do need it, type(x) is better than x.__class__, simply
> because we should always favor builtin functions over direct access of
> dunder-names where possible.


Should we expect (ignoring pathological cases) the assertion
‘type(obj) is obj.__class__’ to hold true? If not, under what
circumstances would it be sensible for those to differ?

 \       “For fast acting relief, try slowing down.” —Jane Wagner, via |
  `\                                                       Lily Tomlin |
_o__)                                                                  |
Ben Finney

More information about the Python-list mailing list