Constants in Python
John Lenton
john at grulic.org.ar
Tue Sep 7 09:12:40 EDT 2004
On Tue, Sep 07, 2004 at 05:06:58AM +0000, Brent W. Hughes wrote:
> Warning: Newbie at work!
>
> I was planning to write some code something like this:
>
> class CTree:
> LEAFSIZE = 4
> LeafNode = [None] * LEAFSIZE
> KEY,DATA,LEFT,RIGHT = range(LEAFSIZE)
> #---------------------------------------------------
> def Add(self,Node,SubTree):
> Key1 = Node[KEY]
> ...
>
> But then I realized that the last line (and many more similar lines)
> would probably need to be writen thusly:
>
> Key1 = Node[CTree.KEY]
>
> I find this a little ugly, not to mention more typing. I suppose
> I could move these lines:
>
> LEAFSIZE = 4
> KEY,DATA,LEFT,RIGHT = range(LEAFSIZE)
>
> out of the class and make them global, but this kind of runs
> against the grain.
>
> Is there another way to deal with "constants"?
not as far as I know. I'm just posting to underline what Andrew just
said: you want to do self.KEY, not CTree.KEY; the latter is a disaster
from a code reusability standpoint, because you just rendered your
class unsubclassable. Well, not quite, but you certainly restricted it
a lot.
--
John Lenton (john at grulic.org.ar) -- Random fortune:
Deliver yesterday, code today, think tomorrow.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 196 bytes
Desc: Digital signature
URL: <http://mail.python.org/pipermail/python-list/attachments/20040907/d8fcc913/attachment.sig>
More information about the Python-list
mailing list