One of the main reasons for working with classes is that objects can be grouped together and bound to a common object. We saw this already when looking at rational numbers; denominator and numerator are two objects that we bound to an instance of the class RationalNumber. They are called attributes of the instance. The fact that an object is an attribute of a class instance becomes apparent from the way they are referenced, which we have used tacitly before:
​_<object>.attribute
Here are some examples of instantiation and attribute reference:
q = RationalNumber(3, 5) # instantiation q.numerator # attribute access q.denominator a = array([1, 2]) # instantiation a.shape z = 5 + 4j # instantiationstepz.imag
Once an instance is defined, we can set, change, or delete attributes of that particular instance. The syntax is the same as for regular variables:
q = RationalNumber(3, 5) r = RationalNumber(7, 3) q.numerator...