Alex Kleider <aklei...@sonic.net> writes:

> Please correct me if I am wrong, but I've assumed that it is proper to
> define all functions before embarking on the main body of a program.

I would say rather that as much code as possible should be in small
well-defined functions, with the “main body” a tiny and trivial call to
a function.

That way, all the code is easily tested by unit testing tools.

> I find myself breaking this rule because I want to set the default
> values of some named function parameters based on a configuration file
> which I have to first read, hence the need to break the rule.

Module-level constants are fine, and they obviously need to be bound
before the definition of the function which uses them for parameter
defaults.

But if they're not constants – as implied by your statement you read
them from a configuration file – then they should not be in the function
definition, because reading the configuration file should itself be
encapsulated in a well-tested function.

-- 
 \      “It is the integrity of each individual human that is in final |
  `\        examination. On personal integrity hangs humanity's fate.” |
_o__)               —Richard Buckminster Fuller, _Critical Path_, 1981 |
Ben Finney

_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor

Reply via email to