creating many similar properties

Lee Harr lee at example.com
Tue Oct 17 21:02:11 EDT 2006


I understand how to create a property like this:

class RC(object):
    def _set_pwm(self, v):
        self._pwm01 = v % 256
    def _get_pwm(self):
        return self._pwm01
    pwm01 = property(_get_pwm, _set_pwm)


But what if I have a whole bunch of these pwm properties?

I made this:

class RC(object):
    def _makeprop(name):
        prop = '_%s' % name
        def _set(self, v):
            v_new = v % 256
            setattr(self, prop, v_new)
        def _get(self):
            return getattr(self, prop)
        return property(_get, _set)

    pwm01 = _makeprop('pwm01')
    pwm02 = _makeprop('pwm02')


Not too bad, except for having to repeat the name.

I would like to just have a list of pwm names and
have them all set up like that. It would be nice if
each one was set to a default value of 127 also....

Any thoughts?

Thanks for your time.



More information about the Python-list mailing list