funcs vs vars in global namespace
David Rysdam
drysdam at ll.mit.edu
Wed Sep 15 07:57:20 EDT 2004
Bengt Richter wrote:
> On Tue, 14 Sep 2004 14:25:04 -0400, David Rysdam <drysdam at ll.mit.edu> wrote:
>
>
>>Alex Martelli wrote:
>>
>>>David Rysdam <drysdam at ll.mit.edu> wrote:
>>> ...
>>>
>>>
>>>>OK, dumb question #1:
>>>>
>>>>Why do this:
>>>>
>>>>sub_module = __import__(which_module_this_time)
>>>>vars(sub_module).update(which_dict_this_time)
>>>>
>>>>When I could just do this:
>>>>
>>>>__import__(which_module_this_time, which_dict_this_time)
>>>>
>>>>?
>>>
>>>
>>>You can do whatever you wish, but what makes you think these constructs
>>>have similar effects? Quoting from Python's online docs on __import__,
>>>
>>>"""
>>> the standard implementation does not use its locals argument at all,
>>>and uses its globals only to determine the package context of the
>>>import statement
>>>"""
>>>
>>>In short, the standard implementation of __import__ does NOT alter in
>>>any way the dict of the module it imports.
>>>
>>>
>>>Alex
>>
>>Ah, I see.
>>
>>Your "which_dict_this_time" dictionary, how are you imagining that
>>working? I was just mapping function name strings to functions
>>({'logError':logError}), but (long story short) that isn't working how I
>>want. But shouldn't I be able to define the function right there in the
>>dictionary itself?
>>
>>Perhaps this is getting too non-obvious, magical and unmaintainable, though.
>
>
> Maybe this will give you some ideas:
>
Aha, yes indeed this gives me ideas. Very excellent tutorial, I've
saved it for when I manage to confuse myself again later. I think I
know just how to do what I want to do now, though I'm beginning to
question the wisdom of providing the feature in question at all. But if
I'm going to, it should be right, so I still thank you.
More information about the Python-list
mailing list