如何更改 Python 中另一个 class 的变量值?

How can I change the value of a variable from another class in Python?

我尝试了研究,但我所能找到的只是访问另一个 class 变量的方法,所以这是我的问题:

我希望我的 Monster() class 在其方法 interact 中包含一个代码,该代码将从变量 pkt 在 Player() class.

我试过了:

super(Player, self)._ _init_ _(pkt) -= 10

但它打印出 SyntaxError 说“这是一个用于扩充赋值的非法表达式。”

你能帮忙吗?这是代码:

from abc import ABC, abstractmethod
from random import random

class GameObject(ABC):
    def __init__(self, pkt):
        self.pkt = pkt

    @abstractmethod

    def is_alive(self):
        return self.pkt > 0

    def interact(self):
        pass


class Player(GameObject):
    def __init__(self):
        super().__init__(50)

    def is_alive(self):
        super().is_alive()

    def interact(self):
        pass

class Door(GameObject):
    def __init__(self):
        super().__init__(50)

    def is_alive(self):
        pass

    def interact(self):
        print("Player went through the door.")


class Monster(GameObject):
    def __init__(self):
        super().__init__(50)

    def is_alive(self):
        pass

    def interact(self):
        super(Player, self).__init__(pkt) -= 10

        print('Player killed the Monster.')


p1 = Player()
board = []

for i in range(0,10):
    if random() < 0.70:
        board.append(Monster())
    else:
        board.append(Door())

for i in board:
    if p1.is_alive() == False:
        break
    else:
        i.interact()
        print(p1.pkt)

您只需

def interact(self, player):
    player.pkt -= 10

player 类型 Player