У меня есть класс, который создает новый объект символа.Сохранение и загрузка экземпляра класса
class Character():
def __init__(self):
self.name = None
self.hp = None
self.mp = None
class Race(Character):
def __init__(self):
super().__init__()
self.race = None
То, что находится в модуле char. Поэтому у меня есть код для создания новой игры.
elif command == "new game":
name_game = input('Name your game: ')
cur_save=open('saves/' + name_game + '.p', 'wb')
player = char.Character()
player_name = input('Name your character: ')
player.name = player_name
player_race = input('What is your race? ')
player.race = player_race
pickle.dump(player, cur_save, -1)
cur_save.close()
Теперь я хочу начать игру и загрузить имя и гонку игроков, которые были введены. Но следующее просто устанавливает игрока в неопределенный.
cur_save=open('saves/' + name_game + '.p', 'rb')
player = pickle.load(cur_save)
Я хочу, чтобы он установил player.name на сохраненное значение и то же самое с player.race. Есть ли что-то еще, что я должен использовать как базы данных рода вещи (MySQL)
Кроме того, просто указатель на стиль: вместо открытия и закрытия файла вы можете использовать: «с открытым (имя файла) как f:», который автоматически закроет файл, когда вы покинете контекст. См. Http://preshing.com/20110920/the-python-with-statement-by-example/ для примера. – sheridp
Да, я верю, что это то, что происходит. Я перезапускаю программу, и когда я это делаю, он импортирует мой класс Character(), поэтому, когда я иду загрузить файл save.p и присваиваю значения игроку. Он говорит, что игрок не определен. Как я могу сделать такую работу? Я хочу, чтобы статистика игроков обновлялась по всей игре и сохранялась при выходе, но позже могла быть перезагружена. И спасибо, sheridp, я изменю это :) – Arkyris
Я получил его на работу, это была ошибка на моем конце. спасибо за помощь – Arkyris