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