Each Python class definition has an implicit superclass: object.
DDaudalagidцитирует2 года назад
When we define our own class, object is the superclass.
DDaudalagidцитирует2 года назад
The superclass of all classes, object, has a default implementation of __init__() that amounts to pass. We aren't required to implement __init__(). If we don't implement it, then no instance variables will be created when the object is created.
DDaudalagidцитирует2 года назад
Refactoring is better than adding if statements.
DDaudalagidцитирует2 года назад
"Explicit is better than implicit."
DDaudalagidцитирует2 года назад
In this example, we factored the __init__() method into the superclass so that a common initialization in the superclass, Card, applies to all the three subclasses NumberCard, AceCard, and FaceCard.
DDaudalagidцитирует2 года назад
A small domain of static objects may be part of implementing a Strategy or State design pattern. In some cases, we may have a pool of constant objects created in an initialization or configuration file, or we might create constant objects based on command-line parameters.
DDaudalagidцитирует2 года назад
This can make the Strategy or State design patterns work efficiently by reusing objects from a small, static pool of constants.
DDaudalagidцитирует2 года назад
We define a function that creates objects of the required classes. We define a class that has methods for creating objects. This is the full factory design pattern, as described in books on design patterns. In languages such as Java, a factory class hierarchy is required because the language doesn't support standalone functions.
DDaudalagidцитирует2 года назад
The advantage of class definitions in general is to achieve code reuse via inheritance.