Я хотел бы узнать больше о функциях «с памятью», реализованных как классы против замыканий.
Рассмотрим (очень) простой пример:
def constant(value):
def _inner():
return value
return _inner
x = constant(5)
print(x())
против
class Constant():
def __init__(self, value):
self._value = value
def __call__(self):
return self._value
y = Constant(5)
print(y())
Является ли производительность и потребление памяти какой-либо из них лучше?Использование слотов заставит класс работать лучше?
Спасибо,
Эрнан
Ps.- Я знаю, что в этом чрезвычайно простом примере, вероятно, это не имеет значения.Но меня интересуют более сложные функции, которые будут вызываться большое количество раз или которые будут создаваться много раз.