20 lines
		
	
	
		
			495 B
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			20 lines
		
	
	
		
			495 B
		
	
	
	
		
			Python
		
	
	
	
| 
 | |
| class Event:
 | |
|    def __init__(self, *args, **kwargs):
 | |
|       self.args = args
 | |
|       self.kwargs = kwargs
 | |
|       self.callbacks = []
 | |
| 
 | |
|       
 | |
|    def __call__(self, *args, **kwargs):
 | |
|       default_kwargs = kwargs.copy()
 | |
|       default_kwargs.update(kwargs)
 | |
|       for callable in self.callbacks:
 | |
|          callable(*args, **default_kwargs)
 | |
| 
 | |
|    def subscribe(self, callable):
 | |
|       self.callbacks.append(callable)
 | |
| 
 | |
|    def remove(self, callable):
 | |
|       while f in self.callbacks: self.callbacks.remove(f)
 |