Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #7580

Re: Function declarations ?

From Gregory Ewing <greg.ewing@canterbury.ac.nz>
Newsgroups comp.lang.python
Subject Re: Function declarations ?
Date 2011-06-14 14:03 +1200
Message-ID <95ntriFod7U1@mid.individual.net> (permalink)
References <slrniuv00f.8s9.cheney@atc5.vermine.org> <e7913881-3028-4370-b4f5-7a7b17b04be0@h7g2000yqa.googlegroups.com> <slrniva5en.8s9.cheney@atc5.vermine.org> <jv3bv65f8il7hl4k7gqbiom72e611j5kt8@4ax.com>

Show all headers | View raw


Tim Roberts wrote:
> Andre Majorel <cheney@halliburton.com> wrote:
> 
>>Anyway, it seems the Python way to declare a function is
>>
>> def f ():
>>   pass
> 
> No, that DEFINES a function.

Actually, it's more illuminating to say that it *creates* a function.

The 'def' statement in Python is an executable statement. Executing
it has the effect of creating a function object and binding it to
the indicated name. Before that has happened, attempting to execute
any code referring to that name will fail.

Conversely, the function name doesn't need to be bound until the
code referring to it is actually executed. So...

>     def g():
>         return f()
>     def f():
>         return 3
>     print g()

works because by the time g is *called*, both def statements
have been executed, and both function names have therefore been
bound.

-- 
Greg

Back to comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Function declarations ? Andre Majorel <cheney@halliburton.com> - 2011-06-08 13:58 +0000
  Re: Function declarations ? Calvin Spealman <ironfroggy@gmail.com> - 2011-06-08 10:06 -0400
  Re: Function declarations ? "D'Arcy J.M. Cain" <darcy@druid.net> - 2011-06-08 10:27 -0400
  Re: Function declarations ? Asen Bozhilov <asen.bozhilov@gmail.com> - 2011-06-10 15:46 -0700
    Re: Function declarations ? Andre Majorel <cheney@halliburton.com> - 2011-06-12 19:38 +0000
      Re: Function declarations ? Tim Roberts <timr@probo.com> - 2011-06-12 21:27 -0700
        Re: Function declarations ? Gregory Ewing <greg.ewing@canterbury.ac.nz> - 2011-06-14 14:03 +1200
      Re: Function declarations ? Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2011-06-13 14:58 +0000
        Re: Function declarations ? Gregory Ewing <greg.ewing@canterbury.ac.nz> - 2011-06-14 13:18 +1200
      Re: Function declarations ? John Nagle <nagle@animats.com> - 2011-06-13 17:19 -0700

csiph-web