[Python-ideas] Support other dict types for type.__dict__
Rob Cliffe
rob.cliffe at btinternet.com
Tue Feb 28 00:18:57 CET 2012
On 27/02/2012 21:53, Oleg Broytman wrote:
> On Mon, Feb 27, 2012 at 07:55:50PM +0100, Victor Stinner wrote:
>> 2012/2/27 Oleg Broytman<phd at phdru.name>:
>>> On Mon, Feb 27, 2012 at 06:35:57PM +0000, Rob Cliffe wrote:
>>>> I suggested a "mutable" attribute some time ago.
>>>> This could lead to finally doing away with one of Python's FAQs: Why
>>>> does python have lists AND tuples? They could be unified into a
>>>> single type.
>>> The main difference between lists and tuples is not mutability but
>>> usage: lists are for a (unknown) number of similar items (a list of
>>> messages, e.g.), tuples are for a (known) number of different items at
>>> fixed positions (an address is a tuple of (country, city, street
>>> address), for example).
>> And tuple doesn't have append, extend, remove, ... methods.
> Tuples are *also* read only, but being read only lists is not their
> main purpose.
>
> Oleg.
With respect, I think you are thinking too narrowly, conditioned by
familiar usage.
Items of a list do not have to be similar (there is nothing in the
language that implies that).
And tuples are often - conceptually - extended, even though it actually
has to be done by building a new tuple - Python even allows you to write
tuple1 += tuple2
A unified type would have "mutating" methods such as append - it's just
that they would raise an error if the object's flag (however it was
implemented) defined it as immutable.
I visualised an actual object attribute, e.g. __mutable__, that could be
set to a boolean value. But having __mutable__() and __immutable__()
methods as suggested by Eric is an alternative. And there may well be
others.
Rob Cliffe
More information about the Python-ideas
mailing list