Dear Users, How can I add information to an object to explain what it expects as it's attributes? For instance I may have an object that creates a CAD file based on a set of default values which are set by the __init__ but can be altered before it runs. for example;
class MakeBasicShape: def __init__(self): self.boundsOptions = ['cuboid', 'cylinder', 'cad'] self.boundsInfo = ['cuboid', [0.,10.,0.,10.,0.,10.]'] def MakeIt(self): assert self.boundsInfo[0] in self.boundsOptions, "Option not recognised: %s", self.boundsInfo[0] if self.boundsInfo[0] == 'cuboid' bounds = self.boundsInfo[1] .... # code to make box elif self.boundsInfo[0] == 'cylinder' [height, radius, noSides] = self.boundsInfo[1] .... # code to make cylinder elif self.boundsInfo[0] == 'cad' fileName = self.boundsInfo[1] .... # code to load CAD file return shape if __name__ == '__main__': shapeFactory0 = MakeBasicShape() shape0 = shapeFactory.MakeIt() # a box shapeFactory1 = MakeBasicShape() shapeFactory1.boundsInfo = ['cylinder' ,[20.,10.,36]] shape1 = shapeFactory.MakeIt() # a cylinder shapeFactory2 = MakeBasicShape() shapeFactory2.boundsInfo = ['cad' ,'/home/Wes/BigHand.stl'] shape2 = shapeFactory.MakeIt() # a CAD file While this example could be coded with different functions for making a box, cylinder, and loading the CAD file I wanted to use attributes to control the object to simplify interaction with it from the user interface code. I would like to move away from getters and setters as they're taking up vast chunks of my code at the moment and do very little! Can I also stop new attributes being added to the MakeBasicShape class? Thanks in advance of any help. Wesley Brooks _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor