Как получить доступ к свойствам экземпляра класса из другого файла - PullRequest
0 голосов
/ 18 июня 2019

У меня игра с разными файлами. В моем вражеском файле я пытаюсь добавить функцию, которая добавляет предмет в инвентарь игрока. Я не знаю, как изменить инвентарь игроков из моего другого файла.

Я уже связал файл противника с файлом проигрывателя, но не могу получить доступ к экземпляру проигрывателя. Если я переопределю новый экземпляр плеера, то прогресс будет возобновляться каждый раз, когда пользователь что-то собирает Будет ли проще перекодировать всю мою программу?

Вот мой кодовый файл https://repl.it/@MineBrick/Life-RPG

Main.py

    from player import Player
    from Enemy import Enemy

    player = Player()
    enemy = Enemy()
    player.test()
    enemy.add_to_inventory()
    print(player.inventory)

Player.py

    class Player:

        def __init__(self):

            self.inventory = ['Dirt']

        def test(self):
            print('test') 

Enemy.py

    from player import Player

    class Enemy:

        def __init__(self):
            Player.test()

        def add_to_inventory(self):
            Player.inventory.append('glass')      

Когда я запускаю код, инвентарь игроков не меняется.

1 Ответ

0 голосов
/ 18 июня 2019

Чтобы изменить экземпляр, ваш код должен знать об этом.Начните с изменения Enemy.add_to_inventory(), чтобы получить аргумент, и вызовите его с экземпляром проигрывателя, который вы хотите изменить.Например:

def add_to_inventory(self, other):
    other.inventory.append('glass')

Затем в main.py:

player = Player()
enemy = Enemy()
enemy.add_to_inventory(player)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...