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