you always bind it by assigning it (actually updating the internal dict dictionnary of your instace)
s.address = hm print s.address >>> <object Address ...>
Or better, do it from within your constructor, namely
class Person : def __init__(self,fn,ln,my_address) : [... snip] self.address = my_address
which will be exactly the same, but you will be sure that you have an address attribute and you can always have default arguments without any values, for example
def __init__(self,fn,ln,my_address=None) : ...
source share