[EMAIL PROTECTED] wrote:
>     Jim> That's why, in my suggested writeup, I suggested that attributes
>     Jim> should be used if the accessors are trivial.
> 
> In my experience it's difficult to find the locations where another module
> mucks with your object's state.  Using properties or accessor methods
> coupling between modules is reduced and you can be more confident that the
> only place an object's state is modified directly is in its own code.

I don't understand this argument.  Any mutating method or property invoked by
foreign code changes an object's state.  If you provide a property or a pair
if accessors that just sets and gets an attribute with a slightly different 
name,
that affords no more protection than if people were setting the attribute 
directly.

If you don't want external code to change an attribute, don't expose it through
a public API.

Jim

-- 
Jim Fulton           mailto:[EMAIL PROTECTED]       Python Powered!
CTO                  (540) 361-1714            http://www.python.org
Zope Corporation     http://www.zope.com       http://www.zope.org
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to