we'll return to this issue in the next as new-style class changeand see it live in and in the context of managed attributes and decorators for nowkeep in mind that for delegation coding patternsyou may need to redefine operator overloading methods in wrapper classes (either by handby toolsor by superclassesif they are used by embedded objects and you want them to be intercepted in new-style classes pseudoprivate class attributes besides larger structuring goalsclass designs often must address name usage too in ' case studyfor examplewe noted that methods defined within general tool class might be modified by subclasses if exposedand noted the tradeoffs of this policy--while it supports method customization and direct callsit' also open to accidental replacements in part vwe learned that every name assigned at the top level of module file is exported by defaultthe same holds for classes--data hiding is conventionand clients may fetch or change attributes in any class or instance to which they have reference in factattributes are all "publicand "virtual,in +termsthey're all accessible everywhere and are looked up dynamically at runtime that saidpython today does support the notion of name "mangling( expansionto localize some names in classes mangled names are sometimes misleadingly called "private attributes,but really this is just way to localize name to the class that created it--name mangling does not prevent access by code outside the class this feature is mostly intended to avoid namespace collisions in instancesnot to restrict access to names in generalmangled names are therefore better called "pseudoprivatethan "private pseudoprivate names are an advanced and entirely optional featureand you probably won' find them very useful until you start writing general tools or larger class hierarchies for use in multiprogrammer projects in factthey are not always used even when they probably should be--more commonlypython programmers code internal names with single underscore ( _x)which is just an informal convention to let you know that name shouldn' generally be changed (it means nothing to python itself this tends to scare people with +background disproportionately in pythonit' even possible to change or completely delete class' method at runtime on the other handalmost nobody ever does this in practical programs as scripting languagepython is more about enabling than restricting alsorecall from our discussion of operator overloading in that __getattr__ and __setattr__ can be used to emulate privacybut are generally not used for this purpose in practice more on this when we code more realistic privacy decorator in designing with classes