Reading Time: 1 minutes
Creating random objects of subclasses of a superclass in Python
Using the random module and Generators, we can have Python make random objects of subclasses of a superclass.
>>> import random >>> class Crop(object): def sow(self): print("Sowing...") def irrigate(self): print("Irrigating...") def harvest(self): print("Harvesting...") >>> class Wheat(Crop): pass >>> class Corn(Crop): pass >>> class Tomato(Crop): pass >>> def cropGenerator(numberOfInstancesToCreate): crops = Crop.__subclasses__() for number in range(numberOfInstancesToCreate): yield random.choice(crops)() >>> cropGeneratorObject = cropGenerator(5) >>> for cropObject in cropGeneratorObject: print(cropObject) <__main__.Corn object at 0x02E7E950> <__main__.Corn object at 0x02E65BB0> <__main__.Wheat object at 0x02B09EB0> <__main__.Tomato object at 0x02E65BB0> <__main__.Corn object at 0x02B09EB0>