PEP 359: The "make" Statement

Steven Bethard steven.bethard at gmail.com
Fri Apr 14 16:52:41 EDT 2006


Tim Hochberg wrote:
> Steven Bethard wrote:
>> Steven Bethard wrote:
>>> Duncan Booth wrote:
>>>> make Element html:
>>>>    make Element body:
>>>>        make Element p:
>>>>            text('But this ')
>>>>            make Element strong:
>>>>                 text('could')
>>>>            text(' be made to work')
>>>
>>> This is nice.  I'll have to play around with it a bit to see how hard 
>>> it would be to make it work.
>>
>> Okay, I think it'll work[1].  I'm going to update this section to 
>> something more like:
>>
>>
>> Open Issues
>> ===========
>>
>> ...
>>
>> Should users of the make statement be able to determine in which dict
>> object the code is executed?  This would allow the make statement to
>> be used in situations where a normal dict object would not suffice,
>> e.g. if order and repeated names must be allowed. Allowing this sort
>> of customization could allow XML to be written like::
> 
> I think this PEP is going off the rails. It's primary virtue was that it 
> was a simpler, clearer way to write:
> 
>     class Foo(args):
>        __metaclass__ = some_metaclass
>        #...
> 
> Once it starts calling secret magic methods behind the scenes it's 
> losing that virture. And for what? Supporting some use cases that have 
> reasonable solutions already?

That's why it's in the Open Issues section.  I expect most of these open 
issues to be resolved by rejection.  (At least, that's my preferred 
resolution.)  But since they people have brought them up, I think they 
need to be addressed as completely as possible.

But I think you make a good point that this particular case can be just 
as easily done using a with-statement (I think).  I'll add that to this 
part of the PEP (once I'm sure it works).

STeVe



More information about the Python-list mailing list