I feel the same as the last one, probably don't move the most wanted place ...
#!/usr/bin/evn python#Coding:utf8classPizza (object):defPrepare (self, type):Print 'Prepare {type} pizza'. Format (type=type)defBake (self, type):Print 'Bake {type} pizza'. Format (type=type)defCut (self, type):Print 'cut {type} pizza'. Format (type=type)defbox (self, type):Print 'box {type} pizza'. Format (type=type)classCheesepizza (Pizza):def __init__(self): Self.name="Cheese Pizza"classClampizza (Pizza):def __init__(self): Self.name="Clam Pizza"classVeggiepizza (Pizza):def __init__(self): Self.name="Viggie Pizza"classPizzafactory (object):defCreate_pizza (self, type):RaiseNotimplementederrordefOrder_pizza (self, type): Pizza=Self.create_pizza (type) pizza.prepare (type) pizza.bake (type) pizza.cut (type) pizza.box (ty PE)returnPizzaclassPizzastore (pizzafactory):defCreate_pizza (self, type): Pizza=NoneifType = ="Cheese": Pizza=Cheesepizza ()ifType = ="Clam": Pizza=Clampizza ()ifType = ="Veggie": Pizza=Veggiepizza ()returnPizzaif __name__=='__main__': Store=Pizzastore () Pizza= Store.order_pizza ('Cheese') PrintPizza.name Store=Pizzastore () Pizza= Store.order_pizza ('Clam') PrintPizza.name Store=Pizzastore () Pizza= Store.order_pizza ('Veggie') PrintPizza.name
Python design pattern, creating a factory method pattern