classes and object-oriented programming details this is where data abstraction hits the mark one can create domainspecific types that provide convenient abstraction ideallythese types capture concepts that will be relevant over the lifetime of program if one starts the programming process by devising types that will be relevant months and even decades laterone has great leg up in maintaining that software we have been using abstract data types (without calling them thatthroughout this book we have written programs using integerslistsfloating point numbersstringsand dictionaries without giving any thought to how these types might be implemented to paraphrase moliere' bourgeois gentilhomme"par ma foiil plus de quatre-vingt pages que nous avons utilise adtssans que nous le sachions " in pythonone implements data abstractions using classes figure contains class definition that provides straightforward implementation of set-ofintegers abstraction called intset class definition creates an object of type type and associates with that object set of objects of type instancemethod for examplethe expression intset insert refers to the method insert defined in the definition of the class intset and the code print type(intset)type(intset insertwill print notice that the docstring (the comment enclosed in """at the top of the class definition describes the abstraction provided by the classnot information about how the class is implemented the comment below the docstring does contain information about the implementation that information is aimed at programmers who might want to modify the implementation or build subclasses (see section of the classnot at programmers who might want to use the abstraction "good heavensfor more than eighty pages we have been using adts without knowing it