scripts is often natural next step--and the topic of the next section catching built-in attributes in an implementation notein python --and in when ' "new styleclasses are enabled--the alternative delegation-based manager class of the file person-composite py that we coded in this will not be able to intercept and delegate operator overloading method attributes like __repr__ without redefining them itself although we know that __repr__ is the only such name used in our specific examplethis is general issue for delegation-based classes recall that built-in operations like printing and addition implicitly invoke operator overloading methods such as __repr__ and __add__ in ' new-style classesbuilt-in operations like these do not route their implicit attribute fetches through generic attribute managersneither __getattr__ (run for undefined attributesnor its cousin __getattribute__ (run for all attributesis invoked this is why we have to redefine __repr__ redundantly in the alternative managerin order to ensure that printing is routed to the embedded person object in comment out this method to see this live--the manager instance prints with default in xbut still uses person' __repr__ in in factthe __repr__ in manager isn' required in at allas it' coded to use normal and default ( "classic"classesc:\codepy - person-composite py [personbob smith etc :\codepy - person-composite py [personbob smith etc [persontom jones technicallythis happens because built-in operations begin their implicit search for method names at the instance in ' default classic classesbut start at the class in ' mandated new-style classesskipping the instance entirely by contrastexplicit by-name attribute fetches are always routed to the instance first in both models in classic classesbuilt-ins route attributes this way too--printingfor exampleroutes __repr__ through __getattr__ this is why commenting out manager' __repr__ has no effect in xthe call is delegated to person new-style classes also inherit default for __repr__ from their automatic object superclass that would foil __getattr__but the new-style __getattribute__ doesn' intercept the name either this is changebut isn' show-stopper--delegation-based new-style classes can generally redefine operator overloading methods to delegate them to wrapped objectseither manually or via tools or superclasses this topic is too advanced to explore further in this tutorialthoughso don' sweat the details too much here watch for it to be revisited in and (the latter of which defines new-style classes more formally)to impact examples again in the attribute management coverage of step customizing constructorstoo