From BlenderWiki

Jump to: navigation, search

Getters and Setters should be implemented so the output of a getter can be used as input to a setter. This lets us write code like this:

a.setFoo( b.getFoo() )

Another common programming idiom that relies on getters and setter co-operating looks like this:

old_value = a.getFoo()  # save old state
a.setFoo( new_val )     # new state
## do something
a.setFoo( old_value )   # restore initial state

If your get/set pair is commonly used like this, consider having the setter return the current state:

old_value = a.setFoo( new_val )
## do something
a.setFoo( old_value )

If you are writing a sexy, modern Bpy type, you could write a tp_getattr handler using a PyMethodDef table. See [[1]] for more information.

-- StephenSwaney - 19 Mar 2005