it has for some two decades howeverbecause they modify core class behaviorsnew-style classes had to be introduced in python as distinct tool so as to avoid impacting any existing code that depends on the prior model for examplesome subtle differencessuch as diamond pattern inheritance search and the interaction of built-in operations and managed attribute methods such as __getattr__ can cause some existing code to fail if left unchanged using optional extensions in the new model such as slots can have the same effect the class model split is removed in python xwhich mandates new-style classesbut it still exists for readers using xor reusing the vast amount of existing code in production use because this has been an optional extension in xcode written for that line may use either class model the next two top-level sections provide overviews of the ways in which new-style classes differ and the new tools they provide these topics represent potential changes to some python readersbut simply additional advanced class topics to many python readers if you're in the latter groupyou'll find full coverage herethough some of it is presented in the context of changes--which you can accept as featuresbut only if you never must deal with any of the millions of lines of existing code new-style class changes new-style classes differ from classic classes in number of wayssome of which are subtle but can impact both existing code and common coding styles as preview and summaryhere are some of the most prominent ways they differattribute fetch for built-insinstance skipped the __getattr__ and __getattribute__ generic attribute interception methods are still run for attributes accessed by explicit namebut no longer for attributes implicitly fetched by built-in operations they are not called for __x__ operator overloading method names in built-in contexts only--the search for such names begins at classesnot instances this breaks or complicates objects that serve as proxies for another object' interfaceif wrapped objects implement operator overloading as data pointthe book programming pythona , -page applications programming follow-up to this book that uses exclusivelyneither uses nor needs to accommodate any of the new-style class tools of this and still manages to build significant programs for guiswebsitessystems programmingdatabasesand text it' mostly straightforward code that leverages built-in types and libraries to do its worknot obscure and esoteric oop extensions when it does use classesthey are relatively simpleproviding structure and code factoring that book' code is also probably more representative of realworld programming than some in this language tutorial text--which suggests that many of python' advanced oop tools may be artificialhaving more to do with language design than practical program goals then againthat book has the luxury of restricting its toolset to such codeas soon as your coworker finds way to use an arcane language featureall bets are offnew-style class changes