Getting Instance of calling class
aahz at pythoncraft.com
Wed Jun 18 02:35:24 CEST 2003
In article <mailman.1055866685.25954.python-list at python.org>,
Steven Taschuk <staschuk at telusplanet.net> wrote:
>Quoth Thomas Güttler:
>> I have a function called _() which prints
>> strings according to the language of the user.
>> I don't want to give this method the object which
>> holds the language information every time I call it.
>> How can I access the calling object?
>I'm not sure what you mean by "the calling object". sys._getframe
>provides frames from further up the call stack, but I'm not sure
>how this relates to what you want to do.
>It sounds a little like you want a dynamically scoped environment
>containing (possibly among other things) localization information
>for the current user. I suppose you could implement such a thing
>by trolling through stack frames, but this seems a bit hackish.
>An alternative approach would be to pass _ into each function
>which needs to produce output. _ could be a closure,
> def makelocalizer(lang):
> def _(s):
> # return s in language lang
> return _
>for example. This avoids passing the language to _, but adds
>passing _ around. Does this help at all?
Close. _() should be an attribute of the user object.
Aahz (aahz at pythoncraft.com) <*> http://www.pythoncraft.com/
"If you don't know what your program is supposed to do, you'd better not
start writing it." --Dijkstra
More information about the Python-list