Im учит себя python, и я столкнулся с проблемой в простом игровом проекте, над которым я работаю.python: настройка атрибутов от модуля к модулю
Я хотел бы оставить статистику игроков в другом модуле из комнат, которыми управляет игровой движок. Проблема в том, что я пытаюсь установить атрибут Player
из другого модуля, он не сохраняет новый атрибут и не создает исходный атрибут.
вот Player
класс в entities
модуле
class Player(object):
def __init__(self):
self.name = ' '
self.hp = 0
self.current_hp = 0
self.strength = 0
self.dexterity = 0
self.constitution = 0
А вот как им пытаются манипулировать и проверить атрибуты в rooms
модуле
class CharacterCreation(Scene):
def enter(self):
character = entities.Player()
character.hp = 10
print character.hp
return 'barracks'
class Barracks(Scene):
def enter(self):
character = entities.Player()
print character.hp
return 'shop'
Когда я проверить это с остальными моего кода, вот что я получаю.
-------------------------------------------------------------------------------
10
-------------------------------------------------------------------------------
0
-------------------------------------------------------------------------------
Так что же мне здесь не хватает? Я думал, что могу установить этот атрибут, используя =
, но, похоже, я ошибаюсь? в первый раз, когда я это сделал, это сработало, но тогда как мне получить python, чтобы установить новое значение hp
на 10?
Таким образом, каждый раз, когда я называю игрока, Im вызывая совершенно новую версию этого? сумасшедший, у меня есть небольшая проблема с пониманием вашей ссылки, хотя, если я последую этим шагам с моим кодом, значит ли это, что он сделает только один экземпляр игрока? также, что было бы так плохо, если бы я сделал его глобальной переменной, но содержал в своем собственном модуле? Это также беспокоит меня, когда я начинаю внедрять монстров. – lerugray
Да, вы создаете новый ... Не пытайтесь скопировать код в одноэлементный шаблон ... Просто исследуйте его ... О глобальных переменных ... хорошо: http://c2.com/ cgi/wiki? GlobalVariablesAreBad :) – BorrajaX
Это работает, но я боюсь, что вы пытаетесь научить OP работать, прежде чем он сможет ходить. –