Classes as namespaces?

Stephen Hansen apt.shansen at gmail.invalid
Sun Mar 28 00:31:16 EDT 2010


On 2010-03-26 07:49:02 -0700, kj said:

> What's the word on using "classes as namespaces"?  E.g.
> 
> class _cfg(object):
>     spam = 1
>     jambon = 3
>     huevos = 2
> 
> breakfast = (_cfg.spam, _cfg.jambon, _cfg.huevos)
> 
> 
> Granted, this is not the "intended use" for classes, and therefore
> could be viewed as a misuse ("that's what dictionaries are for",
> etc.).  But other than this somewhat academic objection[*], I really
> can see no problem with using classes in this way.

On the contrary, this is the intended use of classes. Or at least, one 
of them. A class *is* a namespace, albeit one that you must address 
explicitly unlike the local and global namespaces which are usually 
implicit.

That said...

> [*] My own subjective dislike for the widespread practice of using
> triple quotes to comment out code is formally similar to this one
> ("the 'intended use' for triple-quoting is not to comment out code",
> etc.).  Here I find myself on the opposite side of the purist/pragmatic
> divide.  Hmmm.

What?!

Where do you get this "widespread practice"? You mentioned that before 
when you last posted about that and I forgot to comment. I've never 
seen it.

In the 110k lines of in-house code I maintain, we don't use it once; we 
have somewhere around 300k lines of third-party code from a wide range 
of sources, and although I haven't reviewed it all by any means, I 
regularly have to peek over it and I never seen triple quoted 
"comments".

Hell, I almost never see commented -code-. Code should only be 
commented while fiddling or debugging. Once fiddlng is done, dead code 
should be removed.

I'm sure it -happens- every once in awhile, but.. why? Who uses editors 
that can't block comment/uncomment anymore? :(

-- 
--S

... p.s: change the ".invalid" to ".com" in email address to reply privately.




More information about the Python-list mailing list