[Python-Dev] Choosing a best practice solution for Python/extension modules

Nick Coghlan ncoghlan at gmail.com
Sat Feb 21 00:54:03 CET 2009


Daniel Stutzbach wrote:
> On Fri, Feb 20, 2009 at 5:27 PM, Nick Coghlan <ncoghlan at gmail.com
> <mailto:ncoghlan at gmail.com>> wrote:
> 
>     Brett Cannon wrote:
>     > If you import pickle and call pickle.A() you will get -13 which is not
>     > what you are after.
> 
>     Ah, you may want to think about that a bit more. There's a reason
>     globals are looked up when they're used rather than when their function
>     is defined. Even in your own example, _B isn't defined at all when you
>     define A.
> 
> 
> No, I'm afraid Brett is quite right.  Globals are looked up when the
> function is executed, true, but they are looked up within the module
> that defined the function.  Functions defined in _pypickle would only
> call the _pypickle version of functions.

Oh, I see what you mean now. Looks like Brett's tracked substitution may
be the way to go then.

Cheers,
Nick.

-- 
Nick Coghlan   |   ncoghlan at gmail.com   |   Brisbane, Australia
---------------------------------------------------------------


More information about the Python-Dev mailing list