On Sun, Nov 9, 2008 at 3:42 PM, spir <[EMAIL PROTECTED]> wrote: > Thank you Lie & Kent, that's it. Excuse me, Lie, I answered too fast. > Now, to answer Kent questions, there are several reasons why I wish to do > that. > These objects will be of a 'pattern' type that (unlike function, for > instance), don't know how they're called. They need to hold their name to > pass it to further objects (say, tokens) that will be generated according to > these patterns, but who are not instances of the patterns. Actually, the > pattern's name is a kind of token 'type'. You see what I mean?
No, not at all. Why can't you assign the pattern's name when you create it? > Concretely, I need to instanciate object with a type specified by the > pattern's name and init data given by the result of the parsing. This can be done with a dict mapping pattern names to types. I don't see how having a pattern know its own name helps here. For example: In [22]: class Foo: ....: def __init__(self, x): ....: print "Foo(%s)" % x In [24]: class Bar: ....: def __init__(self, x): ....: print "Bar(%s)" % x In [25]: types = dict(foo=Foo, bar=Bar) In [26]: types['foo'](3) Foo(3) In [27]: types['bar'](42) Bar(42) > Also, I want to write the pattern --> name --> type --> object toolset in a > general to be able to reuse it. Also, simply because I want it so! > There will be many such names, too. > Also: the patterns will actually be generated at runtime according to a > config file -- and can also change at runtime (--> reload() grammar module), > following user customization. So that I don't even know the names at design > time. How are you going to create all these named objects? Kent _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor