Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >类或闭包用于Python中的简单事物怎么实现?

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

提问于 2018-02-05 16:10:37
回答 3关注 0查看 319

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

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

代码语言:javascript
运行
AI代码解释
复制
def constant(value):
    def _inner():
        return value
    return _inner
x = constant(5)
print(x())

vs.

代码语言:javascript
运行
AI代码解释
复制
class Constant():
    def __init__(self, value):
        self._value = value

    def __call__(self):
        return self._value
y = Constant(5)
print(y()) 

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

回答 3

MOISTG

发布于 2018-02-06 01:42:02

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

i太过热闹的梦

发布于 2018-02-06 00:21:19

我会编写更复杂的函数并分析它们。

tthha

发布于 2018-02-06 00:05:46

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

代码语言:javascript
运行
AI代码解释
复制
def foo(x):
    def bar():
        return x
    return bar

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

但是使用一个类:

代码语言:javascript
运行
AI代码解释
复制
class foo(object):
    def __init__(self,x):
        self.x = x
    def __call__(self):
        return self.x

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

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

和开发者交流更多问题细节吧,去 写回答
相关文章

相似问题

相关问答用户
擅长3个领域
腾讯云TDP | 高级后端开发工程师擅长3个领域
萃橙科技 | 合伙人擅长4个领域
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档