Accessing Parent Function's Variable In A Child Function Called In The Parent Using Python
In Python 3.4, I would like to call a child function, defined outside the parent function, that still has access to the parent function's scope (see example below).  While I have n
Solution 1:
In this case, you'd probably like to use a class. They are really easy to get your head around. Note the self variable that is passed, and take a look here for a quick explanation of scope in classes.
#!/usr/bin/env python3classFamily(object):defparent(self):
        self.test = 0self.child()
    defchild(self):
        self.test += 1
        print(self.test)
if __name__ == "__main__":
    Family().parent()
So, to translate to your code:
#!/usr/bin/env python3classGraph(object):
    defdepthFirstSearch(self):
        for vertex in self.adjacency_list:
            vertex.status = "not visited"
            vertex.previous = None
        self.visit_count = 0for vertex in self.adjacency_list:
            if vertex.status == "not visited":
                self.depthFirstSearchVisit(vertex)
    defdepthFirstSearchVisit(self, vertex):
        self.visit_count += 1
        vertex.distance = self.visit_count
        vertex.status = "waiting"for edge in vertex.edges:
            if edge.status == "not visited":
                edge.previous = vertex
                self.depthFirstSearchVisit(edge)
        vertex.status = "visited"
        self.visit_count += 1
        vertex.distance_finished = self.visit_count
classEdge(object):
    status = "not vistited"classVertex(object):
    def__init__(self):
        self.edges = [Edge(), Edge()]
if __name__ == "__main__":
    graph = Graph()
    graph.adjacency_list = [Vertex(), Vertex()]
    graph.depthFirstSearch()
Nothing fancy needed.
Solution 2:
You can define a function attribute like parent.test = 0 outside the function and access it in the child function using parent.test
Post a Comment for "Accessing Parent Function's Variable In A Child Function Called In The Parent Using Python"