At 01:00 AM 9/18/2006, Alan Gauld wrote:
> >>  1. in your roundNumber function, you define a function
> >> incrementDigit.
> >>  I'm pretty sure that this function is destroyed and recreated
> >> every time
> >>  you call the function roundNumber.
> > I don't understand. What's another way?
>
>def f():
>     def g(): return 42
>     return g()
>
>def g(): return 42
>def f() return g()
>
>The two bits of code do the same thing but the first
>constructs/deletes g() each time.

Hm. That's what I get for knowing little computer science.


> > And what's the downside of the way I've done it?
>
>Its slow...

Doesn't seem slow to me. But I take your point.

> > How do you keep from causing all that destruction and recreation?
>
>See above
>
> > And what's bad about it?
>
>Its slow
>
>But sometimes defining a function inside another function is
>what you want, because you need to limit visibility, or it needs
>to access variables that are local to the outer function.
>But unless you have a very clear idea of why you want to
>define a nested function its better to make them global.
>
> > No, I'll take your advice. But I hate to type underscores,
> > so is there another style I could use for functions that
> > would be different from the aRandomVariable style I
> > like for variables?
>
>Personally I don't differentiate variables and functions
>in Python (partly because Python doesn't - they are
>all just names) mainly because functions are usually
>obvious by dint of the parentheses used to call them.
>
> > Function Names
> >
> > Function names should be lowercase, with words separated by
> > underscores  as necessary to improve readability.
>
>It may be the official style but in practice its not that widely
>followed.
>
> > So I guess I should start learning to type underscores accurately.
>
>Me too, I guess :-)

Thanks, Alan.

Dick



_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to