
On 1/30/07, Roman Susi <rnd@onego.ru> wrote:
The proposal (as it seems to me) wants to make change to the language inconsistent with nature dynamic semantics. Its like put implicit:
if RUN_FIRST_TIME: do this else: do that
for the same line of code (def statement's first line).
No, my proto-PEP has never contained semantics like that anywhere in it.
Well, it's good to be clear on where the disagreements lie. However I'm not yet ready to let it rest at that without some more arguments.
As Chris pointed out in his first mail, this 'wart' is mentioned on several lists of python misfeatures: [0][1][2]. I'd like to add to this that even the python documentation finds this issue severe enough to issue an "Important warning"[4].
It seems clear that this behaviour is a gotcha, at least for newbies. This could be excused if there is a good reason to spend the additional time learning this behaviour, but some of the links state, and my
But as somebody already said the alternative is even worse... Its quite easier to mention 3-5 Python warts up front to newbies than to introduce subtle exception for semantics and noise words such as "new" which do not have any other use elsewhere.
Sidenote: There could instead be a new keyword 'once' to indicate the old semantics. I think the PEP related to adding a switch statement proposes the same keyword for a similar use. - Chris Rebert