Подумайте об использовании встроенного functools.lru_cache()
вместо собственного.
Он не вернет ничего при втором вызове функции с теми же параметрами (он вернет то же самое, что и первый вызов функции), но, возможно, вы можете жить с этим. Казалось бы, это незначительная цена, которую нужно заплатить, по сравнению с преимуществами использования чего-то, что поддерживается в стандартной библиотеке.
Требуется, чтобы ваш аргумент x
был хэшируемым, поэтому не будет работать со списками. Строки в порядке.
from functools import lru_cache
@lru_cache()
def unique_fun(x):
...