En Mon, 02 Feb 2009 19:51:11 -0200, Russ P. <russ.paie...@gmail.com>
escribió:
Suppose a library developer (or a module developer on a large team)
uses leading underscores. Now suppose that, for whatever reason
(pressure from the users, perhaps), the library developer decides to
change a "private" attribute to public. Now all occurrences of the
identifier need to be changed. If an assignment to the previously
"private" attribute is missed, no warning will be issued (because
Python allows new attributes to be added anywhere, even completely
outside the class definition itself). And if the library is widely
used, the probability of such bugs occurring is very high.
So _foo becomes foo. Then:
class X(object):
def get_foo(self): return self._foo
def set_foo(self, value): self._foo = value
foo = property(get_foo, set_foo)
You have the public name "foo", for new usage outside the library, and the
private name "_foo", for internal use only. And we're all happy. If it
weren't for your "historical" reasons, using those trivial get/set
functions is rather silly.
--
Gabriel Genellina
--
http://mail.python.org/mailman/listinfo/python-list