[Tutor] detecting data member changes

Luke Paireepinart rabidpoobear at gmail.com
Tue Apr 24 18:23:01 CEST 2007


> No, the above code should work with classinstance.leds. Maybe you are 
> confusing __setattr__ - which affects attributes like .leds - with 
> __setitem__ which is used for classinstance['leds']
Ah, yes. You hit the hail on the nead there, Kent.  Thanks for 
clarifying that for me.
>
>>
>> Is this properties method acceptable Python form or is it more proper 
>> to have modifying member functions like Alan said?
>
> Alan and I don't always agree on questions like this. I don't take 
> such a hard position about direct attribute access. IMO using a 
> property is more Pythonic than making an explicit method. But I think 
> one of the nice things about Python is you don't have to write 
> explicit getters and setters; you can use plain attribute access to 
> get at plain data, then if you need to add some behaviour just change 
> the attribute to a property.
I can see how some people might be surprised to know that changing 
classinstance.leds automagically sends a communication packet to the wii 
remote without their knowledge, but if they're aware of the side-effect, 
it seems to be a more elegant way of doing things to me (with properties 
vs. an explicit method), at least in this case.
>
>> Or is it really up to me on how I want to implement it?
>
> Of course, it's your code, right?
Yes, but it's code I plan on open-sourcing, so I'm trying to make it 
clear what's happening in case I get other developers to help in the future.

-Luke


More information about the Tutor mailing list