[Tutor] Help with objects
bob
bgailer at alum.rpi.edu
Tue Nov 22 17:11:57 CET 2005
At 09:04 PM 11/21/2005, Vincent Wan wrote:
>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
nodeList is a property of class Tree.
> 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
To refer to a property of the class: Tree.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 . )
More information about the Tutor
mailing list