生成python类是否被认为是浪费资源?

2024-09-29 21:48:47 发布

您现在位置:Python中文网/ 问答频道 /正文

当考虑在python中创建一个类只是为了定义一些属性时,据我所知,应该考虑使用一个更好的数据类型,比如namedtuple,它被认为更有效

我的问题是,在这种情况下,使用namedtuple或dict是否更好?在这种情况下,python类真的不是有效的解决方案吗?一般来说,我什么时候应该避免创建一个新类而选择另一个数据类型

谢谢 湿婆


Tags: 属性定义情况解决方案namedtupledict数据类型新类
3条回答

我认为标准类和python dict之间有一点区别

import os
import psutil

class Foo:
    def __init__(self, a, b, c, d, e, f, g):
        self.a = a
        self.b = b
        self.c = c
        self.d = d
        self.e = e
        self.f = f
        self.g = g

foos = [Foo(*range(7)) for _ in xrange(10000)]

process = psutil.Process(os.getpid())
print process.memory_info().rss

产量~15286000

import os
import psutil

foos = [{'a': 0, 'b': 1, 'c': 2, 'd': 3, 'e': 4, 'f': 5, 'g': 6} for _ in xrange(10000)]

process = psutil.Process(os.getpid())
print process.memory_info().rss

产量~1489万

所以dict看起来更轻

一般来说,你永远不应该重新发明轮子。但是,定义一个适合您需要的类是完全合理的。记住,premature optimization is the root of all evil

不,定义类并不被认为是浪费。到目前为止,99.9%的程序最重要的考虑因素是代码的清晰性。编写最能表达您想法的代码

相关问题 更多 >

    热门问题