What makes functions special?

Eric Snow ericsnowcurrently at gmail.com
Sat Jul 9 19:16:19 EDT 2011


On Sat, Jul 9, 2011 at 4:41 PM, Ben Finney <ben+python at benfinney.id.au> wrote:
> Eric Snow <ericsnowcurrently at gmail.com> writes:
>
>> A tracker issue [1] recently got me thinking about what makes
>> functions special.
>
> As you describe, functions are special for your scenario because a
> function definition needs to result in executable code as an object.
>
>> Definition time actually happens during compile time, but it has its
>> own label to mark the contrast with execution time. So why do
>> functions get this special treatment?
>
> You answer this question.
>
>> No other objects have code objects. No other objects in Python have
>> this special optimization.
>
> Yes. The two facts are directly related.
>
>> Maybe I am missing something, or maybe it is super obvious, but isn't
>> this a critical point?
>
> What is the crisis (“a stark change from one state to another”) that
> you're referring to by “a critical point”?
>
> Yes, functions are different and are treated differently. What's your
> question?
>
>> From the docs, the code objects in of function objects are the latter,
>> but the optimization expectation is not clearly indicated. Are there
>> other motivations behind code objects that I am missing? Am I wrong
>> about the optimization expectation?
>
> What optimisation expectation?
>
>> Thoughts?
>
> I think yours need to be expressed more explicitly; I'm not seeing the
> issue that concerns you.
>

My point is that functions are special in Python because they provide
a built in optimization via the special execution of code objects.  I
would like to know if it is really that big a deal, and if the
optimized execution of code objects is a CPython implementation detail
or a specification of the language.

-eric

> --
>  \        “The reason we come up with new versions is not to fix bugs. |
>  `\                     It's absolutely not.” —Bill Gates, 1995-10-23 |
> _o__)                                                                  |
> Ben Finney
> --
> http://mail.python.org/mailman/listinfo/python-list
>



More information about the Python-list mailing list