(continued from previous page class method decorator at time : : note thatwe need to instantiate the instance mehtod decorator before using it as shown at line whereas class decorator can be used as classname decoratorname conclusion in this sectionwe saw the relation between 'function inside the functionand decorator thendecorator with and without arguments are discussed lastlyclass decorators are shown with examples descriptors descriptor gives us the fine control over the attribute access it allows us to write reusable code that can be shared between the classes as shown in this tutorial problems with @property before beginning the descriptorslet' look at the @property decorator and it' usage along with the problem then we will see the descriptors in next section square py class square(object)def __init__(selfside)self side side def aget(self)return self side * def aset(selfvalue)print("can not set area"def adel(self)print("can not delete area"area property(agetasetadeldoc="area of sqare" square( print( area area can not set area del area can not delete area note that in above codeno bracket is used for calculating the area ' areais usedinstead of area()because area is defined as propertynot as method above code can be rewritten using @property decorator as belowsquare py class square(object)"" square using property with decorator""def __init__(selfside)(continues on next page descriptors