如何从另一个文件访问类实例的属性

时间:2019-06-17 22:16:48

标签: python module

我有一个带有不同文件的游戏。在我的敌人档案中,我试图提供一个将物品添加到玩家清单中的功能。我不知道如何从其他文件中更改玩家的广告资源。

我已经将敌方文件链接到播放器文件,但是我无法访问播放器实例。 如果我重新定义播放器的新实例,则每次用户收集内容时进度都会重新启动。重新编码整个程序会更容易吗?

这是我的代码文件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 :(得分:0)

要修改实例,您的代码需要了解它。首先修改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)