glomde wrote: >>What you are trying to achieve is to make syntactic sugar for making namespace >>definitions look nicer. But: the way you are trying to do so isn't pythonic, >>because there isn't one obvious way how your proposal works; you're not even >>specifying a proper semantic interpretation of your syntax (and use "magic" >>markers, which is even more a NoNo). > > I used 'magic' markers, since I am lousy at coming up with new > keywords....
This is an understatement. (snip) > But I'll try to formalize it a little bit more. > > I am proposing two new keywords 'node' and 'attr'. Which have the > syntax: > > node [callable|name][:] > > This will append itself to the current node if it is a callable. If it > is a name it > will become the new current node. The current node has the scope of the > block > or until a new node is created. > > attr name = expression > This will set the attribute name to expression on the current node. 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. > I dont think it is the same as the 'make' but I wouldnt rule it > out..... It has already been ruled out IIRC. -- bruno desthuilliers python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for p in '[EMAIL PROTECTED]'.split('@')])" -- http://mail.python.org/mailman/listinfo/python-list