Panos Laganakos wrote:
> i.e. we usually define private properties and provide public functions
> to access them, in the form of:
> get { ... } set { ... }
> 
> Should we do the same in Python:
> Or there's no point in doing so?
> 
> Some other techniques come to mind, but I think that Python tends to
> allow the programmer to access stuff he wants even though he shouldn't
> or in the form of a dict or list, rather than a method to do so.

There's no point.  Private access can only be advisory anyway -- there are
ways around it in every language.  Convention serves just as well, people
know that touching _foo is done at their own risk.  It's not creating extra
hoops to jump through the few times you really do need to touch a private
var.

Others already mentioned how to transparently change attributes to
properties.

If you're worried about enforcing restrictions in your code base, get a lint
checker to flag any expression of the form name._foo where name isn't
'self'.  Yes you can still access _foo other ways, but you'll never get
perfect enforcement anyway.  Maybe the extra step will make you think
twice, if that's what you want (and it seems to be).

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to