object-oriented programming geometric progression class our second example of specialized progression is geometric progressionin which each value is produced by multiplying the preceding value by fixed constantknown as the base of the geometric progression the starting point of geometric progression is traditionally rather than because multiplying by any factor results in as an examplea geometric progression with base proceeds as code fragment presents our implementation of geometricprogression class the constructor uses as default base and as default starting valuebut either of those can be varied using optional parameters class geometricprogression(progression)inherit from progression """iterator producing geometric progression "" def init (selfbase= start= ) """create new geometric progression base the fixed constant multiplied to each term (default start the first term of the progression (default "" superinit (start self base base override inherited version def advance(self) """update current value by multiplying it by the base value "" self current self base code fragment class that produces geometric progression fibonacci progression class as our final examplewe demonstrate how to use our progression framework to produce fibonacci progression we originally discussed the fibonacci series on page in the context of generators each value of fibonacci series is the sum of the two most recent values to begin the seriesthe first two values are conventionally and leading to the fibonacci series more generallysuch series can be generated from any two starting values for exampleif we start with values and the series proceeds as