Pythonでオブジェクトをあらかじめ計算する方法はありますか?あなたはコンストラクタを使用する場合と同様にPythonであらかじめ計算されたオブジェクト
だけ好き:
master = Tk()
-計算を事前にしてオブジェクトを保存し、起動時にそれを読むための方法は、それを作成するのではなく、ありますか?
私の心は、作業を保存すること、またはCPUのために事前に行うことです。ああ、これが実際に行われるシナリオを知っていれば、それについて聞いてみたいと思います。
Pythonでオブジェクトをあらかじめ計算する方法はありますか?あなたはコンストラクタを使用する場合と同様にPythonであらかじめ計算されたオブジェクト
だけ好き:
master = Tk()
-計算を事前にしてオブジェクトを保存し、起動時にそれを読むための方法は、それを作成するのではなく、ありますか?
私の心は、作業を保存すること、またはCPUのために事前に行うことです。ああ、これが実際に行われるシナリオを知っていれば、それについて聞いてみたいと思います。
あなたが探しているのは、オブジェクトをシリアル化するpickle
moduleです。 Python 2にはpickle
とcPickle
がありますが、同じですが高速ですが、iirc Python 3はpickle
(これは、Python 2の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)
[pickle](https://docs.python.org/2/library/pickle.html)のような意味ですか?私が正しく理解したかどうかわからない – roganjosh