Is this unpythonic?
Johannes Bauer
dfnsonfsduifb at gmx.de
Sun May 10 05:54:43 EDT 2015
On 10.05.2015 10:58, Frank Millman wrote:
> It is then a simple extra step to say -
>
> EMPTY_L:IST = ()
>
> and if required -
>
> EMPTY_DICT = ()
>
> and expand the explanation to show why a tuple is used instead.
>
> So if there was a situation where the overhead of testing for None became a
> problem, this solution offers the following -
>
> 1. it solves the 'overhead' problem
> 2. it reads reasonably intuitively in the body of the program
> 3. it is safe
> 4. it should not be difficult to write a suitable self-explanatory comment
I do understand what you're trying to do, but it is my gut-feeling that
you're overengineering this and as a side-effect introducing new problems.
With the above declaration as you describe, the code becomes weird:
foo = EMPTY_LIST
foo.append(123)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'tuple' object has no attribute 'append'
and
foo = EMPTY_DICT
foo["bar"] = "moo"
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
So instead, the user of this construct would have to
foo = list(EMPTY_LIST)
or
foo = dict(EMPTY_DICT)
but, coincidentially, this is easier (and more pythonic) by doing
foo = list()
foo = dict()
to which there are the obvious (pythonic) shortcuts
foo = [ ]
foo = { }
All in all, I'd be more confused why someone would introduct
"EMPTY_LIST" in the first place and think there's some strange weird
reason behind it. Explaining the reason in the comments doesn't really
help in my opinion.
Best regards,
Johannes
--
>> Wo hattest Du das Beben nochmal GENAU vorhergesagt?
> Zumindest nicht öffentlich!
Ah, der neueste und bis heute genialste Streich unsere großen
Kosmologen: Die Geheim-Vorhersage.
- Karl Kaos über Rüdiger Thomas in dsa <hidbv3$om2$1 at speranza.aioe.org>
More information about the Python-list
mailing list