On 21 Jan, 22:00, George Sakkis <[EMAIL PROTECTED]> wrote: > On Jan 21, 2:52 pm, glomde <[EMAIL PROTECTED]> wrote: > > > > > On 21 Jan, 20:16, George Sakkis <[EMAIL PROTECTED]> wrote: > > > > On Jan 21, 1:56 pm, glomde <[EMAIL PROTECTED]> wrote: > > > > > On 21 Jan, 18:59, Wildemar Wildenburger > > > > > <[EMAIL PROTECTED]> wrote: > > > > > glomde wrote: > > > > > > Hi, > > > > > > > is it somehow possible to set the current namespace so that is in an > > > > > > object. > > > > > > [snip] > > > > > > set namespace testObj > > > > > > Name = "Test" > > > > > > > Name would set testObj.Name to "Test". > > > > > > > [snip] > > > > > > > Is the above possible? > > > > > > Don't know, sorry. But let me ask you this: Why do you want to do > > > > > this? > > > > > Maybe there is another way to solve the problem that you want to > > > > > solve. > > > > > The reason is that I do not want to repeat myself. It is to set up XML > > > > type like > > > > trees and I would like to be able to do something like. > > > > > with ElemA(): > > > > Name = "Top" > > > > Description "Blahaha..." > > > > with ElemB(): > > > > Name = "ChildA" > > > > Description "Blahaha..." > > > > .... > > > > > This would be the instead of. > > > > with ElemA() as node: > > > > node.Name = "Top" > > > > node.Description "Blahaha..." > > > > with ElemB() as node: > > > > node.Name = "ChildA" > > > > node.Description "Blahaha..." > > > > .... > > > > > So to save typing and have something that I think looks nicer. > > > > ... and more confusing for anyone reading the code (including you > > > after a few weeks/months). If you want to save a few keystrokes, you > > > may use 'n' instead of 'node' or use an editor with easy auto > > > completion. > > > > By the way, is there any particular reason for generating the XML > > > programmatically like this ? Why not have a separate template and use > > > one of the dozen template engines to populate it ? > > > > George > > > I am not using it for XML generation. It was only an example. But > > the reason for using it programmatically is that you mix power > > of python with templating. Using for loops and so on. > > Any template engine worth its name supports loops. Other than that, > various engines provide different degrees of integration with Python, > from pretty limited (e.g. Django templates) to quite extensive (e.g. > Mako, Tenjin). > > > The above was only an example. And yes it might be confusing if you > > read the code. But I still want to do it, the question is it possible? > > I would be surprised if it is. Yet another idea you may want to > explore if you want that syntax so much is by (ab)using the class > statement since it introduces a new namespace: > > class ElemA: > Name = "Top" > Description "Blahaha..." > class ElemB: > Name = "ChildA" > Description "Blahaha..." > > PEP 359 would address this easily (it's actually the first use case > shown) but unfortunately it was withdrawn. > > George > > [1]http://www.python.org/dev/peps/pep-0359/#example-simple-namespaces
Yes the make statement would have done it. But I realized that it might be possible if it is possible to override the __setattr__ of local. Then the enter function would set a global variable and the default setattr would set/get variables from this variable. Is this possible? -- http://mail.python.org/mailman/listinfo/python-list