【发布时间】: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()
【问题讨论】:
-
请提供minimal reproducible example,以及整个错误输出。
-
自上次编写保存文件后,您是否更改了
Player类?