Классы или замыкания для простых вещей в Python

Я хотел бы больше узнать о функциях «с памятью», реализованных как классы против замыканий.

Рассмотрим (очень) простой пример:

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. - Я знаю, что в этом чрезвычайно простом примере, вероятно, это не имеет значения. Но меня интересуют более сложные функции, которые будут вызываться много раз или которые будут создаваться много раз.

19
задан Hernan 25 March 2011 в 09:15
поделиться