Op 2005-10-03, Steven D'Aprano schreef <[EMAIL PROTECTED]>: > On Mon, 03 Oct 2005 06:59:04 +0000, Antoon Pardon wrote: > >> Well I'm a bit getting sick of those references to standard idioms. >> There are moments those standard idioms don't work, while the >> gist of the OP's remark still stands like: >> >> egold = 0: >> while egold < 10: >> if test(): >> ego1d = egold + 1 > > for item in [x for x in xrange(10) if test()]: > > But it isn't about the idioms. It is about the trade-offs. Python allows > you to do things that you can't do in other languages because you > have much more flexibility than is possible with languages that > require you to declare variables before using them. The cost is, some > tiny subset of possible errors will not be caught by the compiler. But > since the compiler can't catch all errors anyway, you need to test for > errors and not rely on the compiler. No compiler will catch this error: > > x = 12.0 # feet > # three pages of code > y = 15.0 # metres > # three more pages of code > distance = x + y > if distance < 27: > fire_retro_rockets() > > And lo, one multi-billion dollar Mars lander starts braking either too > early or too late. Result: a new crater on Mars, named after the NASA > employee who thought the compiler would catch errors.
Using (unit)tests will not guarantee that your programs is error free. So if sooner or later a (unit)tested program causes a problem, will you then argue that we should abondon tests, because tests won't catch all errors. -- Antoon Pardon -- http://mail.python.org/mailman/listinfo/python-list