[Python-Dev] operator.is*Type (original) (raw)
Thomas Heller theller at python.net
Wed Feb 22 13:03:55 CET 2006
- Previous message: [Python-Dev] operator.is*Type
- Next message: [Python-Dev] operator.is*Type
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Fuzzyman wrote:
Hello all,
Feel free to shoot this down, but a suggestion. The operator module defines two functions : isMappingType isSquenceType
These return a guesstimation as to whether an object passed in supports the mapping and sequence protocols. These protocols are loosely defined. Any object which has a
_getitem_
method defined could support either protocol.
The docs contain clear warnings about that.
I suggest we either deprecate these functions as worthless, or we define the protocols slightly more clearly for user defined classes.
I have no problems deprecating them since I've never used one of these functions. If I want to know if something is a string I use isinstance(), for string-like objects I would use
try: obj + "" except TypeError:
and so on.
An object prima facie supports the mapping protocol if it defines a
_getitem_
method, and akeys
method. An object prima facie supports the sequence protocol if it defines a_getitem_
method, and not akeys
method. As a result code which needs to be able to tell the difference can use these functions and can sensibly refer to the definition of the mapping and sequence protocols when documenting what sort of objects an API call can accept.
Thomas
- Previous message: [Python-Dev] operator.is*Type
- Next message: [Python-Dev] operator.is*Type
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]