Bruno Desthuilliers wrote:
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.
Good tools to know about, and a consistent naming pattern also makes
life easier (which I have since done ;).
Let's head towards murkier waters (at least murkier to me -- hopefully
they can be easily clarified): some of the attributes are read-only,
such as record count; others are not directly exposed, but still
settable, such as table version; and still others require a small amount
of processing... at which point do I switch from simple attribute access
to method access?
~Ethan~
--
http://mail.python.org/mailman/listinfo/python-list