Python file structure

Chris Angelico rosuav at gmail.com
Tue May 12 15:29:48 EDT 2015


On Wed, May 13, 2015 at 5:13 AM,  <zljubisicmob at gmail.com> wrote:
> import...
>
> A = configparser.get(...)
> B = configparser.get(...)
>
> Command line parameters parsing [they can change variable A or B]
>
> Def usage()
>         Print how to use script parameters
>
> def main():
>         ...
>
> if __name__ == "__main__":
>     main()
>
> If I find an error in command line parameters section I cannot call function usage() because it is not defined yet.
>
> I have few options here:
> 1.      Put definition of usage function before command line parameters parsing section

I'd do this, unless there's a good reason not to. A simple usage
function probably doesn't have many dependencies, so it can logically
go high in the code. As a general rule, I like to organize code such
that things are defined higher up than they're used; it's not strictly
necessary (if they're used inside functions, the requirement is only
that they be defined before the function's called), but it helps with
clarity. That generally means that "def usage():" wants to go up above
any place where "usage()" occurs, but below the definitions of any
functions that usage() itself calls, and below the first assignments
to any global names it uses. It's not always possible, but when it is,
it tends to produce an easy-to-navigate source file.

ChrisA



More information about the Python-list mailing list