fetchedclass descsquaredef __init__(selfstart)self value start def __get__(selfinstanceowner)return self value * def __set__(selfinstancevalue)self value value class client descsquare( class client descsquare( each desc has own state on attr fetch on attr assign no delete or docs assign descriptor instance to class attr another instance in another client class could also code two instances in same class client ( client (print( xc print( xprint( * * * ( when runthe output of this example is the same as that of the original property-based versionbut here descriptor class object is intercepting the attribute accessesc:\codepy - desc-computed py using state information in descriptors if you study the two descriptor examples we've written so faryou might notice that they get their information from different places--the first (the name attribute exampleuses data stored on the client instanceand the second (the attribute squaring exampleuses data attached to the descriptor object itself ( selfin factdescriptors can use both instance state and descriptor stateor any combination thereofdescriptor state is used to manage either data internal to the workings of the descriptoror data that spans all instances it can vary per attribute appearance (oftenper client classinstance state records information related to and possibly created by the client class it can vary per client class instance (that isper application objectin other wordsdescriptor state is per-descriptor data and instance state is per-clientinstance data as usual in oopyou must choose state carefully for instanceyou would not normally use descriptor state to record employee namessince each client instance requires its own value--if stored in the descriptoreach client class instance managed attributes