Strategy

The Strategy pattern helps fto implement different behavior for instances of a class.

#!/usr/bin/env python
#
class General(object):
    def __init__( self, func = None):
        if func:
            self.execute = func
    def execute( self):
        print( "General.execute")

def special1():
    print( "execute special1")

def special2():
    print( "execute special2")
        
gen0 = General()
gen1 = General( special1)
gen2 = General( special2)
gen0.execute()
gen1.execute()
gen2.execute()