【问题标题】:I have a problem with my Pickle Dump...can anyone figure this out?我的 Pickle Dump 有问题……有人能解决这个问题吗?
【发布时间】:2020-08-07 19:52:53
【问题描述】:

我正在尝试在我的 python 文件中保存一个对象,以便我可以加载它。它是桌面 RPG 的 UI,因此只有一个名为 Player 的类。但是,我收到一个名为“输入用尽”的错误。我发现这是因为我的泡菜文件是空的。但是,我之前使用过完全相同的代码来成功保存......所以我很困惑。代码如下。我的对象搞砸了吗?这似乎不是因为程序运行良好……有些问题。

对象

class Player:
    def __init__(self, name):
    self.name = name
    self.strength = 0
    self.strbonus = 0
    self.dex = 0
    self.dexbonus = 0
    self.con = 0
    self.conbonus = 0
    self.intel = 0
    self.intelbonus = 0
    self.wis = 0
    self.wisbonus = 0
    self.cha = 0
    self.chabonus = 0
    self.hp = 0
    self.maxhp = 0
    self.armor = 0
    self.level = 0
    self.xp = 0
    self.inventory = {"Basic Clothes": 0}
    self.physique = " "
    self.face = " "
    self.skin = " "
    self.hair = " "
    self.clothing = " "
    self.virtue = " "
    self.vice = " "
    self.speech = " "
    self.background = " "
    self.misfortune = " "
    self.alignment = " "
    self.copper = 0
    self.inventoryslots = 0
    self.currentinventory = sum(Player.inventory.values())
    self.rations = 0

保存代码

if option == "9":
    with open('savefile', 'wb') as f:
        pickle.dump(Player, f)
        print("\n Game has been saved! And so has your soul!\n")
        input("->")
        mainscreen()

加载代码

if os.path.exists("savefile") == True:
    os.system('cls')
    with open("savefile", "rb") as f:
        global Player
        Player = pickle.load(f)
        print("Loaded save state...your journey continues!")
        input("->")
        mainscreen()

【问题讨论】:

标签: python pickle


【解决方案1】:

您正在保存类 Player,但不是 Player 的实例。

【讨论】:

    猜你喜欢
    • 2023-03-19
    • 1970-01-01
    • 2021-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多