自分の一部を漬ける方法

0
投票

つまり、クラス内からオブジェクトを酸洗いしています(How to pickle yourselfを参照):

クラス内からオブジェクトを酸洗いしています(How to pickle yourself自分で酸洗いする方法を参照):
    def save(self, path):
        f=open(path, 'wb')
        pickle.dump(self, f)
        f.close()


    @classmethod
    def load(cls, path):
        f=open(path, 'rb')
        obj=pickle.load(f)
        f.close()
        return obj
def save(self, path): f=open(path, 'wb') pickle.dump(self, f) f.close() @classmethod def load(cls, path): f=open(path, 'rb') obj=pickle.load(f) f.close() return obj def save(self、path): f=open(path、 'wb') pickle.dump(self、f) f.close() @classmethod def load(cls、path): f=open(path、 'rb') obj=pickle.load(f) f.close() objを返す

これは正常に機能します。しかし、ほとんどの場合、私が漬けたくない大きな属性が1つあります。どうやってやるの?どういうわけか次のようになります:

これは正常に機能します。しかし、ほとんどの場合、私が漬けたくない大きな属性が1つあります。どうやってやるの?どういうわけかこのように見えるはずです:
        def save(self, path, without_attr_x=True):
            f=open(path, 'wb')
            if(without_attr_x):
                #somehow remove attr_x from the pickling
                # I could do self.attr_x=None but this deletes attr_x from the running instance as well
            pickle.dump(self, f)
            f.close()
def save(self, path, without_attr_x=True): f=open(path, 'wb') if(without_attr_x): #somehow remove attr_x from the pickling # I could do self.attr_x=None but this deletes attr_x from the running instance as well pickle.dump(self, f) f.close() def save(self、path、without_attr_x=True): f=open(path、 'wb') if(without_attr_x): #どういうわけか酸洗いからattr_xを削除します #self.attr_x=Noneを実行できますが、実行中のインスタンスからattr_xも削除されます pickle.dump(self、f) f.close()

ソース

python serialization pickle

-furas

-chefhose

答えを待っています

興味があるかもしれません

© 2021   KonnichiwaSekai.Com