[Python-3000] gettype (original) (raw)

Jack Diederich jack at psynchronous.com
Wed Aug 2 05:14:37 CEST 2006


On Tue, Aug 01, 2006 at 07:29:51PM -0700, Talin wrote:

tomer filiba wrote: > that's surly anachronism :) > > o.class is a little more typing and will surely scare newbies. > moreover, type(x) and x.class can return different things > (you can fool class, but not type()). > > for my part, i'm fine with any form that makes a distinction between > the metaclass "type" and the inquire-type "type". > call it o.class, gettype() or typeof(), just don't mix that with > the metaclass

From a code style perspective, I've always felt that the magical underscore names should not be referred to ouside of the class implementing those names. The double underscores are an indication that this method or property is in most normal use cases referred to implicitly by use rather than explicitly by name; Thus str() invokes str and so on.

The paired double underscores indicate that the function is special to the instance's class. C++ converts understand this just fine until you mention that classes are themselves instances at which point the grey matter takes a while to settle again [guilty]. After that reshuffling you are again assaulted because the stack stops. The class of a class is a type but the class of a class of a class is still a type. Turtles all the way down.

See the recent thread on python-checkins for some discussion on why "isinstance(ob, type(type))" isn't just legal -- it's backwards compatible!

-Jack



More information about the Python-3000 mailing list