I'm trying to write a tree data structure as part of my first object oriented program
I have an error "can't assign to function call" caused by this line: Tree.nodeList(self.name) = self however, nodeList is a dictionary I'm trying to index. Beyond the error I'm still not sure I understand how to make and use a tree data structure using objects. Thank you for the help Here is my code # obj_tree1.py import random # constants that control the simulation NUMBER_REPS = 10 # run's the simulation MAX_LINAGES = 10 # number of species in each run BRANCHING_PROBABILITY = 0.5 class Tree(object): numLinages = 0 # keeps track of how many nodes there are nodeList = {} # keeps track of the nodes class Node(object): def __init__(self, name): self.name = name # an integer self.alive = True self.descendents = {} # nodes descending from self Tree.numLinages += 1 # records node creation Tree.nodeList(self.name) = self # makes node accesable from tree def __init__(self): nodeList(0) = Tree.Node(0) # adds a root node 0 to the tree def AddBranch(self, offspring): self.descendents(offspring) = Tree.Node(offspring) # adds a descendent node def NumLinages( ): return Tree.numLinages NumLinages = staticmethod(NumLinages) currentTree = Tree() for i in range(NUMBER_REPS): j = 0 while j <= currentTree.NumLinages(): # checks all node because their names are sequential integers if j.alive: if random.random() >= BRANCHING_PROBABILITY: currentTree.AddBranch(j, (currentTree.NumLinages() + 1)) # creates a new node j += 1 Vincent Wan ------------------------------------------------------------------------ -------------- PhD Candidate Committee on the Conceptual and Historical Studies of Science University of Chicago PO Box 73727 Fairbanks, AK 99707 wan AT walrus DOT us (change CAPS to @ and . ) _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor