Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Namespace:
- def __init__(self, name, parent):
- self.name = name
- self.child_namespaces = set()
- self.parent_namespace = parent
- self.variables = set()
- def create_namespase_into_parent(self, namespace_name, parent_namespace_name):
- if self.name == parent_namespace_name:
- self.child_namespaces.add(Namespace(namespace_name,parent_namespace_name))
- else:
- for child_namespace in self.child_namespaces:
- child_namespace.create_namespase_into_parent(namespace_name, parent_namespace_name)
- def add_to_namespace_new_variable(self, namespace_name, variable_name):
- if self.name == namespace_name:
- self.variables.add(Namespace(variable_name,namespace_name))
- else:
- for child_namespace in self.child_namespaces:
- child_namespace.add_to_namespace_new_variable(namespace_name, variable_name)
- def get_variable_from_namespace(self, namespace_name, variable_name):
- if self.name == namespace_name:
- if variable_name in self.variables:
- print(namespace_name)
- else:
- if namespace_name == 'global':
- print(None)
- else:
- big_problem.get_variable_from_namespace(namespace_name.parent_namespace, variable_name)
- else:
- for child_namespace in self.child_namespaces:
- child_namespace.get_variable_from_namespace(namespace_name, variable_name)
- def check_namespace_in_namespace_set(self, namespace_name):
- if self.name == namespace_name:
- return namespace_name
- else:
- if namespace_name in self.child_namespaces:
- return namespace_name
- else:
- for child_namespace in self.child_namespaces:
- child_namespace.check_namespace_in_namespace_set(namespace_name)
- big_problem = Namespace('global','None')
- number_of_requests = int(input())
- for item in range(number_of_requests):
- command, namespace, argument = input().split()
- if command == 'create':
- big_problem.create_namespase_into_parent(namespace, argument)
- if command == 'add':
- big_problem.add_to_namespace_new_variable(namespace, argument)
- if command == 'get':
- check = big_problem.check_namespace_in_namespace_set(namespace)
- if check == namespace:
- big_problem.get_variable_from_namespace(namespace, argument)
- else:
- print(None)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement