Page 20 - thinkpython
P. 20
xx Contents
17 Classes and methods 157
17.1 Object-oriented features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
17.2 Printing objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
17.3 Another example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
17.4 A more complicated example . . . . . . . . . . . . . . . . . . . . . . . . . . 160
17.5 The init method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
17.6 The __str__ method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
17.7 Operator overloading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
17.8 Type-based dispatch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
17.9 Polymorphism . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
17.10 Debugging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
17.11 Interface and implementation . . . . . . . . . . . . . . . . . . . . . . . . . . 164
17.12 Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
17.13 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
18 Inheritance 167
18.1 Card objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
18.2 Class attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
18.3 Comparing cards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
18.4 Decks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
18.5 Printing the deck . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
18.6 Add, remove, shuffle and sort . . . . . . . . . . . . . . . . . . . . . . . . . . 171
18.7 Inheritance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
18.8 Class diagrams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
18.9 Debugging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
18.10 Data encapsulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
18.11 Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
18.12 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177