output as shown for properties earlierexcept that the name of the class in the first line variesc:\codepython validate_tester py validate_descriptors same output as propertiesexcept class name option validating with per-client-instance state unlike in the prior property-based variantthoughin this case the actual name value is attached to the descriptor objectnot the client class instance although we could store this value in either instance or descriptor statethe latter avoids the need to mangle names with underscores to avoid collisions in the cardholder client classthe attribute called name is always descriptor objectnot data importantlythe downside of this scheme is that state stored inside descriptor itself is class-level data that is effectively shared by all client class instancesand so cannot vary between them that isstoring state in the descriptor instance instead of the owner (clientclass instance means that the state will be the same in all owner class instances descriptor state can vary only per attribute appearance to see this at workin the preceding descriptor-based cardholder exampletry printing attributes of the bob instance after creating the second instancesue the values of sue' managed attributes (nameageand acctoverwrite those of the earlier object bobbecause both share the samesingle descriptor instance attached to their classfile validate_tester py from __future__ import print_function from validate_tester import loadclass cardholder loadclass(bob cardholder(' - ''bob smith' ' main st'print('bob:'bob namebob acctbob agebob addrsue cardholder('''sue jones' ' main st'print('sue:'sue namesue acctsue agesue addraddr differsclient data print('bob:'bob namebob acctbob agebob addrname,acct,age overwrittenthe results confirm the suspicion--in terms of managed attributesbob has morphed into suec:\codepy - validate_tester py validate_descriptors [usingbobbob_smith ** main st suesue_jones ** main st bobsue_jones ** main st there are valid uses for descriptor stateof course--to manage descriptor implementation and data that spans all instance--and this code was implemented to illustrate the technique moreoverthe state scope implications of class versus instance attributes should be more or less given at this point in the book exampleattribute validations