[Python-Dev] Documentation idea

Terry Reedy tjreedy at udel.edu
Sat Oct 11 06:46:19 CEST 2008

Brett Cannon wrote:
> On Fri, Oct 10, 2008 at 1:45 PM, Terry Reedy <tjreedy at udel.edu> wrote:

>> The advantage of the decorator version is that the compiler or module loader
>> could be special cased to recognize the 'C' decorator and try it first
>> *before* using the Python version, which would serve as a backup.  There
>> could be a standard version in builtins that people could replace to
>> implement non-standard loading on a particular system.  To cater to other
>> implementations, the name could be something other than 'C', or we could
>> define 'C' to be the initial of "Code" (in the implementation language).
>>  Either way, other implementation could start with a do-nothing "C"
>> decorator and run the file as is, then gradually replace with lower-level
>> code.
> The decorator doesn't have to require any special casing at all
> (changing the parameters to keep the code short)::
>   def C(module_name, want):
>      def choose_version(ob):
>          try:
>            module = __import__(module_name, fromlist=[want])
>            return getattr(module, want)
>           except (ImportError, AttributeError):
>             return ob
>       return choose_version
> The cost is purely during importation of the module and does nothing
> fancy at all and relies on stuff already available in all Python VMs.

If I understand correctly, this decorator would only be applied *after* 
the useless Python level function object was created.  I was proposing 
bypassing that step when not necessary, and I believe special casing 
*would* be required for that.

More information about the Python-Dev mailing list