28 lines
		
	
	
		
			651 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			28 lines
		
	
	
		
			651 B
		
	
	
	
		
			Python
		
	
	
	
	
	
| class TangoScope:
 | |
|     def __init__(self):
 | |
|         self.defs = {}
 | |
| 
 | |
|     def set_def(self, ident, val):
 | |
|         self.defs[ident] = val
 | |
| 
 | |
|     def get_def(self, ident):
 | |
|         return self.defs.get(ident)
 | |
| 
 | |
| class ChildTangoScope(TangoScope):
 | |
|     def __init__(self, parent):
 | |
|         super().__init__()
 | |
|         self.parent = parent
 | |
| 
 | |
|     def get_def_local(self, ident):
 | |
|         return self.defs.get(ident)
 | |
| 
 | |
|     def get_def(self, ident):
 | |
|         local = self.get_def_local(ident)
 | |
|         if local is None:
 | |
|             return self.parent.get_def(ident)
 | |
|         else:
 | |
|             return local
 | |
| 
 | |
| 
 | |
| class RootTangoScope(TangoScope):
 | |
|     pass |