Proposal for new operators to python that add syntactic sugar for hierarcical data.
Bruno Desthuilliers
bdesth.quelquechose at free.quelquepart.fr
Thu May 18 20:08:46 EDT 2006
glomde a écrit :
>>We already have this (quite close to) this syntax:
>>
>>class <name>(super):
>> <name>=<attr_value> *
>> [class *]
>>
>>There's also the Zope3 'implements' trick, that allow to modify the
>>class namespace without assignement:
>>
>>class <name>:
>> <callable>(*args, **kw)*
>>
>>So what you want is very certainly doable without any syntax change.
>
>
> It's not obvious me how you would do it it with the above syntax.
> Could you give me an example?
> For example how would you do:
>
> root = ET.Element("html")
> node root:
> attr head("head"):
> node title("title):
> for i in sections:
> node section():
> attr Text = section[i]
>
Your snippet doesn't follow the syntax you described.
But FWIW:
class Root(Node):
class Head(Node):
class Title(Node):
content="page title"
for section in sections:
class Section(Node):
content=section
Ok. Get it. Doh :(
Can't work, because we can't neither reuse the same name nor dynamically
create it (or if it's possible, I fail to see how without really dirty
code).
Point taken.
We'd need the make: statement, but the BDFL has pronounced against.
I'm still -2 against your proposition, but it could make a good use case
for the make statement. I gave an eye at the new 'with' statement, but
I'm not sure it could be used to solve this.
More information about the Python-list
mailing list