ndbecker2 at gmail.com
Tue Dec 2 20:56:00 CET 2008
Robert Kern wrote:
> Neal Becker wrote:
>> Arnaud Delobelle wrote:
>>> Neal Becker <ndbecker2 at gmail.com> writes:
>>>> I noticed in some profiling, that it seems that:
>>>> def Func ():
>>>> def something():
>>>> It appears that if Func is called many times, this nested func
>>>> definition will cause significant overhead. Is this true? I guess
>>>> I've become accustomed to decent compilers performing reasonable
>>>> transformations and so have tended to write code for clarity.
>>> If something() can be defined outside Func(), how is it clearer to
>>> define it inside?
>> If it's only used inside.
> I, for one, find that significantly less clear. I only expect functions to
> be defined inside of functions if they are going to use lexical scoping
> for some reason. If I read your code, I'd probably waste a good five
> minutes trying to figure out what part of the local scope you were using
> before I would conclude that you just did it because you thought it looked
I'm using the inner function to prevent pollution of the global namespace. Local variables also have this attribute. Code is easier to understand when it is written with the greatest locality - so you can see immediately that the inner function isn't used somewhere else.
More information about the Python-list