Advertisement
eg0rmaffin

namespaces_emulation

Dec 8th, 2020
568
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.11 KB | None | 0 0
  1. scopes = {'global': {'parent': None, 'variables': ''}}
  2.  
  3. def create(namespace, parent):
  4.     if namespace not in scopes:
  5.         scopes[namespace] = {}
  6.         scopes[namespace]['parent'] = parent
  7.         scopes[namespace]['variables'] = ''
  8.     return 0
  9.  
  10.  
  11. def add(namespace, var):
  12.     if type(scopes[namespace]['variables']) == list:
  13.         scopes[namespace]['variables'].append(var)
  14.     else:
  15.         scopes[namespace]['variables'] = [scopes[namespace]['variables'], var]
  16.     return 0
  17.  
  18. def get(namespace, var):
  19.     if namespace is None:
  20.         print('None')
  21.         return
  22.     for a in scopes[namespace]['variables']:
  23.         if (var == a):
  24.             for b in scopes:
  25.                 if (namespace == b):
  26.                     print (b)
  27.                     return
  28.     get(scopes[namespace]['parent'], var)
  29.  
  30. i = 1
  31. n = int(input())
  32. while i <= n:
  33.     cmd, namespace, arg = input().split()
  34.     if cmd == 'create':
  35.         create(namespace, arg)
  36.         # print(scopes)
  37.     if cmd == "add":
  38.         add(namespace, arg)
  39.     if cmd == "get":
  40.         get(namespace, arg)
  41.     print(scopes)
  42.     i += 1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement