【问题标题】:Pickle Load Custom Object Parameters MisalignedPickle 加载自定义对象参数未对齐
【发布时间】:2023-01-11 04:32:26
【问题描述】:

汽车.py:

   class Car(object):
        def __init__(self, year=2023, speed=50):
            self.year = year 
            self.speed = speed
            self.word_index = {}

工具.py:

from custom.Car import Car
c1 = Car(2020, 40)
picklefile = open('car.pkl', 'wb')
pickle.dump(c1, picklefile)
    
with open('car.pkl', 'rb') as f:
    c2 = Car(pickle.load(f))

加载文件后,整个 Car 对象被分配给 self.year。所以我最终有: c2.year:序列化的 Car 对象。 c2.speed:默认速度为 50 而不是 40。 我错过了什么?

【问题讨论】:

    标签: python pickle


    【解决方案1】:

    您将 pickle.load 的输出作为第一个参数(即 year)传递给 Car 的 init 方法。您不需要将加载 pickle 文件的输出传递给 Car 的构造函数。只需使用pickle.load

    with open('car.pkl', 'rb') as f:
        c2 = pickle.load(f)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-09-29
      • 2016-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多