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"