unpythonic use of property()?

Michele Simionato michele.simionato at gmail.com
Mon Apr 20 11:53:22 EDT 2009


On Apr 17, 7:21 pm, J Kenneth King <ja... at agentultra.com> wrote:
> Consider:
>
> code:
> ------------------------------------------------------------------------
>
> class MyInterface(object):
>
>     def __get_id(self):
>         return self.__id
>
>     id = property(fget=__get_id)
>
>     def __init__(self, id, foo):
>         self.__id = id
>         self.foo = foo

I use the double underscore/name mangling mechanism only if I am sure
that the
__xxx attribute will be overridden in subclasses, and overriding
without
protection will cause issues. Otherwise I don't bother, I use a single
underscore.
In my mind it is obvious that a private attribute _xxx attribute
should not
be overridden in subclasses without care. The double underscore
instead says "you can override me freely, don't worry" and I reserve
it
for attributes which *should* be overridden.



More information about the Python-list mailing list