What makes functions special?

Eric Snow ericsnowcurrently at gmail.com
Sat Jul 9 22:33:10 EDT 2011


On Sat, Jul 9, 2011 at 7:34 PM, Steven D'Aprano
<steve+comp.lang.python at pearwood.info> wrote:
> Eric Snow wrote:
>>> Mostly I am just
>> trying to put together more pieces of the Python puzzle.  In this case
>> I was trying to find out if the optimized execution of code objects
>> for functions is a part of the language or just an implementation
>> detail.
>> You keep using that phrase, "optimized execution of code objects for
> functions", but I have no idea what that means.
>> The best I can think of is that you are thinking along these lines...
>> "Suppose we have the source code to a function:
>> def spam(n):
>    return "SPAM"*n
>> To execute this, Python currently compiles the function into a code block,
> and then when you call spam(n) elsewhere, Python executes the already
> compiled code block.
>
Yeah, that's pretty much it. Is that all there is to it? I was
saying optimized, but I guess there isn't much special optimization
going on then. Thanks for taking the time.
-eric
> Suppose instead an implementation of Python did not pre-compile the
> function. Each time you called spam(n), the implementation would have to
> locate the source code and interpret it on the spot. Would that be
> allowed?"
>> If that's your question, then I would call that a Python interpreter using
> c.1960 technology (as opposed to a byte-code compiler, which all the main
> implementations currently are).
>> If that were the *only* difference, then I see no reason why it wouldn't be
> allowed as an implementation of Python. A horribly slow implementation, but
> still an implementation.
>> However, I doubt that would be the only difference. Given such a
> simple-minded Python interpreter, it would be hard to provide expected
> Python language features such as compiled code objects, closures, etc. You
> would have to fake them somehow. Provided you could fake them sufficiently
> well, then the lack of a byte-code compiler is just a quality of
> implementation issue.
>> If that's *not* your question, them I'm stumped.
>>>>> --
> Steven
>> --
> http://mail.python.org/mailman/listinfo/python-list
>


More information about the Python-list mailing list

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