Передать объект или его значения из одного скрипта в другой скрипт в Python? - PullRequest
0 голосов
/ 08 октября 2019

Я довольно плохо знаком с Python, особенно с классами / объектами и терминологией. Но я хочу сделать следующее: у меня есть один объект «герой». Этот объект имеет переменную "здоровье" и список "инвентарь". Я создаю объект в моем основном файле игры (называемом «game.py»). Затем я импортирую другой файл (скажем, «minigame.py»), который я хочу выполнить.

Моя проблема в том, что я хотел бы иметь возможность использовать объект «герой», его переменную здоровья и список инвентаря в скрипте мини-игры, вносить в него изменения и передавать его обратно в основной файл игры. Но когда я пытаюсь импортировать «героя», он просто создает еще один объект класса.

Можно ли как-нибудь разрешить сценариям взаимодействовать так, как я описал? Использовать объект и вносить в него изменения в другом скрипте?

# game.py

class Hero(object):
    instruction1 = "\nYou need to set your hero's name" 
    name = ""
    health = 100
    inventory = []  

    def __init__(self): 
        self.setting()

    def setting(self):
        self.set_name()
        print('\nHi', self.name, '\n')
        self.status()

    def set_name(self):
        print(self.instruction1)
        self.name = input('')

    def status(self):
        print('Your health stat is: ', self.health) 

    def show_inventory(self): 
        print("Your current inventory contains: ", self.inventory) 

hero=Hero() 

import minigame

, а затем в моей программе «мини-игры» я попытался импортировать героя, но когда я запускаю код, он просто создает новый:

# minigame.py

print("\nminigame starts here\n")

from game import hero

Затем я запускаю »game.py ", и результат выглядит так:

Вам необходимо установить ссылку на имя вашего героя

Привет ссылка

Ваш показатель здоровья: 100

мини-игра начинается здесь

Вам нужно указать имя своего героя zelda

Hi zelda

Ваш показатель здоровья: 100

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...