类或闭包用于Python中的简单事物怎么实现?

  • 回答 (3)
  • 关注 (0)
  • 查看 (45)

我想了解更多关于“有内存”的函数,这些函数是作为类和闭包实现的。

考虑(非常)简单的例子:

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()) 

这些功能的性能和内存消耗是否更好?使用插槽将使类的性能更好?

超级大菜鸟超级大菜鸟提问于
MOISTG数学本科在修,顺带旁听计算机智能科学。喜欢计科,美食,旅游。一个走错路的文科生。回答于

使用内置数据类型,比如元组以获得最佳性能。

i太过热闹的梦回答于
tthha真理偏执狂回答于

在Python#number0#中,我得到以下内容:

def foo(x):
    def bar():
        return x
    return bar

b = foo(4)
b.__sizeof__()
>>> 44

但是使用一个类:

class foo(object):
    def __init__(self,x):
        self.x = x
    def __call__(self):
        return self.x

c = foo(4)
c.__sizeof__()
>>> 16

这看起来像函数版本是一个更大的内存占用。

扫码关注云+社区

领取腾讯云代金券