A little disappointed so far
Andrew Bennetts
andrew-pythonlist at puzzling.org
Sun May 18 22:04:04 EDT 2003
On Mon, May 19, 2003 at 02:36:53AM +0100, Graham Nicholls wrote:
> Jay O'Connor wrote:
>
> >
> > Actually, from a Smalltalk pure OO background I find that case
> > statements are superflous in OO languages and had been programming
> > Python for about 8 months before I even wondered if the language had
> > them :)
> >
> How do you handle, say
> if arg == 'd':
> switch on debug
> if arg == 'v':
> switch on verbose
Well, I might just spell it that way... it's nice and clear :)
But for this case, I don't use if statements. Seeing as I'm typically using
Twisted, I use its twisted.python.usage module, which lets me say:
class Options(usage.Options):
optFlags = [['debug', 'd', 'switch on debugging'],
['verbose', 'v', 'switch on verbose reporting'],]
config = Options()
config.parseOptions()
Then, code elsewhere can look at that object and do:
if config['verbose']:
print 'Starting the flobbudgitron!'
As bonus, you automatically get support for --verbose and --debug as long
options, and also you get a nicely formatted --help message for free.
I understand that the optparse module in Python 2.3 is similarly flexible.
The point here is if you have data-driven code like this, you don't need so
many little if statements for 50 seperate cases. It's all handled by one
general case that you can re-use.
-Andrew.
More information about the Python-list
mailing list