components of wrapped object may be inherited from arbitrary sourcesother approachesa web search today will uncover numerous additional tools that similarly populate proxy classes with overloading methodsit' widespread concernagainin we'll also see how to code straightforward and general superclasses once that provide the required methods or attributes as mix-inswithout metaclassesredundant code generationor similarly complex techniques this story may evolve over timeof coursebut has been an issue for many years as this stands todayclassic class proxies for objects that do any operator overloading are effectively broken as new-style classes such classes in both and require coding or generating wrappers for all the implicitly invoked operator methods wrapped object may support this is not ideal for such programs--some proxies may require dozens of wrapper methods (potentially over !)--but reflectsor is at least an artifact ofthe design goals of new-style class developers be sure to see ' metaclass coverage for an additional illustration of this issue and its rationale we'll also see there that this behavior of built-ins qualifies as special case in new-style inheritance understanding this well requires more background on metaclasses than the current can providea regrettable byproduct of metaclasses in general--they've become prerequisite to more usage than their originators may have foreseen type model changes on to our next new-style changedepending on your assessmentin new-style classes the distinction between type and class has either been greatly muted or has vanished entirely specificallyclasses are types the type object generates classes as its instancesand classes generate instances of themselves both are considered typesbecause they generate instances in factthere is no real difference between built-in types like lists and strings and userdefined types coded as classes this is why we can subclass built-in typesas shown earlier in this - subclass of built-in type such as list qualifies as newstyle class and becomes new user-defined type types are classes new class-generating types may be coded in python as the metaclasses we'll meet later in this -user-defined type subclasses that are coded with normal class statementsand control creation of the classes that are their instances as we'll seemetaclasses are both class and typethough they are distinct enough to support reasonable argument that the prior type/class dichotomy has become one of metaclass/classperhaps at the cost of added complexity in normal classes advanced class topics