So I've recently dived into OOP, and so far everything is going smooth. Whilst I have no issues per se, there's an amazing feature which I hope exists, though I cannot find any documentation on said feature.
When assigning attributes to objects, I often find that I have to change attribues that are dependent upon others, say, light and darkness. Here's an example:
class shade:
def __init__(self, light):
self.light=light
self.darkness=100-light
def __str__(self):
return (str(self.light) + ',' + str(self.darkness))
>>> shade1=shade(30,70)
>>> shade1.light
30
>>> shade1.darkness
70
Now, while that is cool and all, what I would like is the same process to occur, but within the same object if a change in one attribute occurs. If I reset the property of light (oh yeah), I want darkness to incr/decr accordingly. I can do this with a function if it works to change the property of light, returning the new value of light/darkness, but I'd like a way to do this if i change the property of light simply by re-assigning it's value, w/out the use of functions, Like this:
>>> shade1.light=50
>>> shade1.light
50
>>> shade1.darkness
50
Also, as am new to OOP, if anyone knows some good tutorials, that would also be a massive help.
Thanks in advance.