self label label accesses inside the subject class self data start not interceptedrun normally def size(self)return len(self datamethods run with no checking def double(self)because privacy not inherited for in range(self size())self data[iself data[ def display(self)print('% =% (self labelself data) doubler(' is'[ ] doubler(' is'[- - - ]the following all succeed print( labelx display() double() display(print( labely display() double( label 'spamy display(accesses outside subject class interceptedvalidateddelegated the following all fail properly ""print( size()prints "typeerrorprivate attribute fetchsizeprint( datax data [ size lambda print( dataprint( size()""when traceme is truethe module file' self-test code produces the following output notice how the decorator catches and validates both attribute fetches and assignments run outside of the wrapped classbut does not catch attribute accesses inside the class itselfc:\codepy - access py [setwrapped [setwrapped [getlabelx is [getdisplayx is =[ [getdouble[getdisplayx is =[ [getlabely is [getdisplayy is =[- - - [getdouble[setlabel spam[getdisplayspam =[- - - decorators