Advertisement
Guest User

Untitled

a guest
Feb 26th, 2020
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.62 KB | None | 0 0
  1. class Namespace:
  2.     def __init__(self, name, parent):
  3.         self.name = name
  4.         self.child_namespaces = set()
  5.         self.parent_namespace = parent
  6.         self.variables = set()
  7.  
  8.     def create_namespase_into_parent(self, namespace_name, parent_namespace_name):
  9.         if self.name == parent_namespace_name:
  10.             self.child_namespaces.add(Namespace(namespace_name,parent_namespace_name))
  11.         else:
  12.             for child_namespace in self.child_namespaces:
  13.                 child_namespace.create_namespase_into_parent(namespace_name, parent_namespace_name)
  14.  
  15.     def add_to_namespace_new_variable(self, namespace_name, variable_name):
  16.         if self.name == namespace_name:
  17.             self.variables.add(Namespace(variable_name,namespace_name))
  18.         else:
  19.             for child_namespace in self.child_namespaces:
  20.                 child_namespace.add_to_namespace_new_variable(namespace_name, variable_name)
  21.            
  22.     def get_variable_from_namespace(self, namespace_name, variable_name):
  23.         if self.name == namespace_name:
  24.             if variable_name in self.variables:
  25.                 print(namespace_name)
  26.             else:
  27.                 if namespace_name == 'global':
  28.                     print(None)
  29.                 else:
  30.                     big_problem.get_variable_from_namespace(namespace_name.parent_namespace, variable_name)
  31.         else:
  32.             for child_namespace in self.child_namespaces:
  33.                 child_namespace.get_variable_from_namespace(namespace_name, variable_name)
  34.  
  35.                    
  36.     def check_namespace_in_namespace_set(self, namespace_name):
  37.         if self.name == namespace_name:
  38.              return namespace_name
  39.         else:
  40.             if namespace_name in self.child_namespaces:
  41.                 return namespace_name
  42.             else:
  43.                 for child_namespace in self.child_namespaces:
  44.                     child_namespace.check_namespace_in_namespace_set(namespace_name)
  45.  
  46.        
  47. big_problem = Namespace('global','None')                
  48. number_of_requests = int(input())
  49. for item in range(number_of_requests):
  50.     command, namespace, argument = input().split()
  51.  
  52.     if command == 'create':
  53.         big_problem.create_namespase_into_parent(namespace, argument)
  54.            
  55.     if command == 'add':
  56.         big_problem.add_to_namespace_new_variable(namespace, argument)
  57.                
  58.     if command == 'get':
  59.         check = big_problem.check_namespace_in_namespace_set(namespace)
  60.         if check == namespace:
  61.             big_problem.get_variable_from_namespace(namespace, argument)
  62.         else:
  63.             print(None)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement