Thank you bob. I fixed the errors where I tried to index a dictionary
with name()
so so that they say name[]
>> Beyond the error I'm still not sure I understand how to make and
>> use a tree data structure using objects.
There is a new error as well
Traceback (most recent call last):
File "/Users/Wally/obj_tree1.py", line 28, in -toplevel-
currentTree = Tree()
File "/Users/Wally/obj_tree1.py", line 21, in __init__
nodeList[0] = Tree.Node(0) # adds a root node 0 to the tree
NameError: global name 'nodeList' is not defined
Code with error bob fixed fixed throughout
# 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
Thank you for the help
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 - [email protected]
http://mail.python.org/mailman/listinfo/tutor