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


Groups > comp.lang.python > #4588

Re: vertical ordering of functions

From Ben Finney <ben+python@benfinney.id.au>
Newsgroups comp.lang.python
Subject Re: vertical ordering of functions
References <mailman.1127.1304460530.9059.python-list@python.org>
Date 2011-05-04 09:58 +1000
Message-ID <87sjsvfia2.fsf@benfinney.id.au> (permalink)
Organization Unlimited download news at news.astraweb.com

Show all headers | View raw


Jabba Laci <jabba.laci@gmail.com> writes:

> Is there a convention for this? Should main() be at the top and called
> function below?

No, it's Python convention for both of those to be at the end of the
module.

I follow the convention described by Guido van Rossum in
<URL:http://www.artima.com/weblogs/viewpost.jsp?thread=4829>.

Essentially, the mainline code is all in a top-level function, which
accepts command-line arguments in its ‘argv’ parameter, catches any
‘SystemExit’ exception, and returns the exit code for the program.

The ‘if __name__ == "__main__"’ section does nothing but call that
function, passing the ‘sys.argv’ value, then exit with the return value.

This makes the whole behaviour of the program available for calling as a
function, while the program works as expected when invoked as a program.

Commonly I will name the function ‘__main__’, but this is an artefact of
my previously-held vain hope that this idiom would become special to
Python and called automatically without the ‘if __name__ …’ hack. Guido,
and most others I've seen use this idiom, simply name the function
‘main’.

-- 
 \       “An idea isn't responsible for the people who believe in it.” |
  `\                                      —Donald Robert Perry Marquis |
_o__)                                                                  |
Ben Finney

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


Thread

vertical ordering of functions Jabba Laci <jabba.laci@gmail.com> - 2011-05-03 18:08 -0400
  Re: vertical ordering of functions Ben Finney <ben+python@benfinney.id.au> - 2011-05-04 09:58 +1000
    Re: vertical ordering of functions John Bokma <john@castleamber.com> - 2011-05-03 19:44 -0500
  Re: vertical ordering of functions Roy Smith <roy@panix.com> - 2011-05-03 20:27 -0400
  Re: vertical ordering of functions Grant Edwards <invalid@invalid.invalid> - 2011-05-04 01:09 +0000
  Re: vertical ordering of functions John Roth <johnroth1@gmail.com> - 2011-05-04 04:14 -0700
  Re: vertical ordering of functions Hans Georg Schaathun <hg@schaathun.net> - 2011-05-10 19:31 +0100

csiph-web