this observation also applies to the many redundant features we've seensuch as ' str format method and ' with statement--tools borrowed from other languagesand overlapping with others long present in python when programmers use multiple ways to achieve the same goalall become required knowledge let' be honestpython has grown rife with redundancy in recent years as suggested in the preface--and as you've now seen first-hand--today' python world comes replete with all the functional duplications and expansions chronicled in table - among others we've seen in this book table - sampling of redundancy and feature explosion in python category specifics major paradigms proceduralfunctionalobject-oriented incompatible lines and xwith new-style classes in both string formatting tools expressionstr formatstring template attribute accessor tools __getattr____getattribute__propertiesdescriptors finalization statements try/finallywith varieties of comprehension listgeneratorsetdictionary class augmentation tools function callsdecoratorsmetaclasses kinds of methods instancestaticclassmetaclass attribute storage systems dictionariesslots flavors of imports modulepackagepackage relativenamespace package superclass dispatch protocols direct callssuper mro assignment statement forms basicmultinameaugmentedsequencestarred types of functions normalgenerator function argument forms basicname=value*pargs**kargskeyword-only class behavior sources superclassesmetaclasses state retention options classesclosuresfunction attributesmutables class models classic new-style in xmandated new-style in unicode models optional in xmandated in pydoc modes gui clientrequired all-browser in recent byte code storage schemes original__pycache__ only in recent if you care about pythonyou should take moment to browse this table it reflects virtual explosion in functionality and toolbox size-- concepts that are all fair game for newcomers most of its categories began with just one original member in pythonmany were expanded in part to imitate other languagesand only the last few can be the python paradox