Python中的预计算对象

2024-05-19 08:38:22 发布

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

有没有办法在Python中预先计算一个对象?你知道吗

就像你使用构造器一样:

master = Tk()

有没有办法预先计算并保存对象,并在启动时读取它而不是创建它?你知道吗

我的想法都是为了节省工作,或者为了CPU而提前做。哦,如果你知道这样一个场景,我很想听听。你知道吗


Tags: 对象master场景cputk办法节省
1条回答
网友
1楼 · 发布于 2024-05-19 08:38:22

我认为您要寻找的是序列化对象的^{} module。在Python2中有picklecPickle,这是相同的,但是更快,但是iirc Python3只有pickle(在引擎盖下,这相当于Python2中的cPickle)。这将允许您使用预先计算的属性保存对象。你知道吗

import cPickle as pickle
import time

class some_object(object):
    def __init__(self):
        self.my_val = sum([x**2 for x in xrange(1000000)])

start = time.time()

obj = some_object()

print "Calculated value = {}".format(obj.my_val)
with open('saved_object.pickle', 'w') as outfile: #Save the object
    pickle.dump(obj, outfile)

interim = time.time()

reload_obj = pickle.load(open('saved_object.pickle','r'))

print "Precalculated value = {}".format(reload_obj.my_val)

end = time.time()

print "Creating object took {}".format(interim - start)
print "Reloading object took {}".format(end - interim)

相关问题 更多 >

    热门问题