[Python-Dev] Re: opcode performance measurements

Jeremy Hylton jeremy@alum.mit.edu
2002年1月31日 06:12:26 -0500


>>>>> "SP" == Samuele Pedroni <pedronis@bluewin.ch> writes:

 SP> Hi. Q about PEP 267 Does the PEP mechanims adress only
 SP> import a
 SP> use a.x
 SP> cases. How does it handle things like
 SP> import a.b
 SP> use a.b.x
You're a smart guy, can you tell me? :-). Seriously, I haven't
gotten that far.
import mod.sub
creates a binding for "mod" in the global namespace
The compiler can detect that the import statement is a package import
-- and mark "mod.sub" as a candidate for optimization. A use of
"mod.sub.attr" in function should be treated just as "mod.attr".
The globals array (dict-list hybrid, technically) has the publicly
visible binding for "mod" but also has an internal binding for
"mod.sub" and "mod.sub.attr". Every module or submodule attribute in
a function gets an internal slot in the globals. The internal slot
gets initialized the first time it is used and then shared by all the
functions in the module.
So I think this case isn't special enough to need a special case.
Jeremy

AltStyle によって変換されたページ (->オリジナル) /