class TheThing(object): def __init__(self): self.number = 0 def some_function(self): print "I got called" def add_me_up(self, more): self.number += more return self.number a = TheThing() b = TheThing() a.some_function() b.some_function() print a.add_me_up(50) print b.add_me_up(20) print a.number print b.number class TheMultiplier(object): def __init__(self, base): self.base = base def do_it(self, m): return m * self.base x = TheMultiplier(a.number) print x.do_it(b.number)
The most complicated part I think is
def __init__(self, base): self.base = base
I don't understand why self.base = base. I am assuming base is a variable coming from TheThing class. However, I am not sure why this assignment is there. What is its purpose? I have been reading that self doesn't have a value the programming can change so in my mind I have base = base. Without this assignment the code does not work. Why?
To confirm, __init__ allows for internal variables. Internal variables cannot be shown outside of the function, right? How does self come into this?
Thank you so much for your time and effort