[Python-Dev] Sets are mappings?

Nick Coghlan ncoghlan at gmail.com
Wed Dec 21 15:32:26 CET 2005


Michael Chermside wrote:
> Nick Coghlan writes:
>> Close enough to on-topic to stay here, I think. However, I tend to think of
>> the taxonomy as a little less flat:
>>>> basecontainer (anything with __len__)
>> - set
>> - basemapping (anything with __getitem__)
>> - dict
>> - basesequence (anything which understands x[0:0])
>> - list
>> - tuple
>> - string
>> - unicode
>> - basearray (anything which understands x[0:0,])
>> - Numeric.array/scipy.array

<snip>
> So I have a counter-proposal. Let's NOT create a hierarchy of abstract
> base types for the elementary types of Python. (Even basestring feels
> like a minor wart to me, although for now it seems like we need it.)

Sorry - I meant to indicate that I didn't think the base classes were 
necessary because the relevant checks already existed in a "does it behave 
like one" sense:
 def is_container(x):
 try:
 len(x)
 return True
 except (TypeError, AttributeError):
 return False
 def is_mapping(x):
 return hasattr(x, "__getitem__")
 def is_sequence(x):
 try:
 x[0:0]
 return True
 except LookupError:
 return False
 def is_multiarray(x):
 try:
 x[0:0,]
 return True
 except LookupError:
 return False
I agree it's a definite tangent to the original topic :)
Cheers,
Nick.
-- 
Nick Coghlan | ncoghlan at gmail.com | Brisbane, Australia
---------------------------------------------------------------
 http://www.boredomandlaziness.org


More information about the Python-Dev mailing list

AltStyle によって変換されたページ (->オリジナル) /