[Tutor] Simple Python Program
bob gailer
bgailer at gmail.com
Sun Aug 1 05:11:41 CEST 2010
On 7/31/2010 8:24 PM, Steven D'Aprano wrote:
> On Sun, 1 Aug 2010 04:35:03 am bob gailer wrote:
>
>> Continue to avoid writing functions. They are not necessary for such
>> a simple program.
>>
> That is *terrible* advice. Absolutely awful.
>
Well I disagree. I was trying to steer the OP to get the simplest
possible program running, then do incremental expansion.
In my understanding user defined functions serve these purposes:
1 - modularizing large programs
2 - factoring out common code
3 - providing callbacks
4 - choosing callable objects from some collection.
5 - providing a main function for the if __name__ == "__main__" idiom
6 - what else can we think of?
None of these are needed in this simple case.
> Functions should not be avoided unless necessary. Functions should be
> used unless there is a compelling reason to avoid them.
>
Once the OP has succeeded in getting some program running he will
experience some relief and satisfaction. Then I think it is time to add
language features. But not just for the sake of using them.
> This is not 1972 any more, and we're not teaching kids to write
> spaghetti code with BASIC and GOTO.
Functions have no relationship to avoiding spaghetti code. Python makes
spaghetti code impossible since it lacks a goto or equivalent statement.
> Functions, or their object-oriented
> equivalent methods, are *the* single most important feature of
> programming. And they're simple too
Well - almost simple. Until you get into issues like global vs local
names, positional vs keyword arguments, required vs optional arguments,
default values (especially mutable objects), * and **, generator
functions, magic methods, nested defs, decorators, ....
> -- they might not be the first thing you teach an absolute newbie who has never programmed before
That is what our OP appears to be.
--
Bob Gailer
919-636-4239
Chapel Hill NC
More information about the Tutor
mailing list