class GlobalInterface: _instance = None def __new__(cls, *args, **kwargs): if not cls._instance: cls._instance = super(GlobalInterface, cls).__new__(cls, *args, **kwargs) return cls._instance def __init__(self): self.shared_data = {} def set_data(self, key, value): self.shared_data[key] = value def get_data(self, key): return self.shared_data.get(key, None) if __name__ == '__main__': interface = GlobalInterface() interface2 = GlobalInterface() interface.set_data('key1', 'value1') print(interface2.get_data('key1'))