attributes, properties, and accessors -- philosophy

Bruno Desthuilliers bruno.42.desthuilliers at websiteburo.invalid
Tue Nov 24 03:02:22 EST 2009


Ethan Furman a écrit :
> The problem I have with properties is my typing.  I'll end up assigning 
> to an attribute, but get the spelling slightly wrong (capitalized, or 
> missing an underscore -- non-obvious things when bug-hunting), so now I 
> have an extra attribute which of course has zero effect on what I'm 
> trying to do and I start getting wierd results like viewing deleted 
> records when I *know* I set useDeleted = False... 30 minutes later I 
> notice it was /supposed/ to be use_deleted.  *sigh*
> 
> So -- to keep myself out of trouble -- I have started coding such things 
> as, for example:
> 
> result = table.use_deleted()       # returns True or False
> table.use_deleted(False)           # skip deleted records
> 
> instead of
> 
> result = table.use_deleted
> table.use_deleted = False
> 
> My question:  is this [ severely | mildly | not at all ] un-pythonic?

Definitly and totally unpythonic. The first solution to your problem is 
to stick to standard naming conventions. If this is not enough, Chris 
pointed you to really useful tools. Also, you can override __setattr__ 
to catch such errors - at least during the coding/debug phase.



More information about the Python-list mailing list