why the attribute be deleted still in dir(man)?

Chris Angelico rosuav at gmail.com
Sat Aug 23 18:56:56 EDT 2014


On Sun, Aug 24, 2014 at 8:49 AM, luofeiyu <elearn2014 at gmail.com> wrote:
> class Person(object):
>        def addProperty(self, attribute):
>               getter = lambda self: self._getProperty(attribute)
>               setter = lambda self, value: self._setProperty(attribute,
> value)
>               deletter = lambda self:self.delProperty(attribute)
>               setattr(self.__class__, attribute,
> property(fget=getter,fset=setter,fdel=deletter,doc="Auto-generated method"))
>        def _setProperty(self, attribute, value):
>              setattr(self, '_' + attribute, value.title())
>       def _getProperty(self, attribute):
>             return getattr(self, '_' + attribute)
>       def delProperty(self,attribute):
>             delattr(self,'_' + attribute)

Look. Forget properties. Python is not Java or C++, and you almost
never need this kind of thing. Read up a tutorial on doing classes
Python's way, and you'll find that all this sort of thing just doesn't
matter. You've come here with a significant number of questions about
properties, and it looks as if you're trying to do everything through
them - which is utterly and completely useless, especially when you
use properties to be as dynamic as you're doing. Just don't do it.

ChrisA



More information about the Python-list mailing list