获取对象的上下文

2024-05-13 13:57:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用Python编写一个游戏。玩家角色和敌人角色是Person的实例。字符可以有幂,属于Power类。当一个角色在战斗中使用异能时,Power对象需要知道谁拥有这个异能(以便应用该异能的任何效果)。如何让Power对象知道它的Person是谁?在

一个明显的解决方案是包含一个创建参数来存储对Person的引用。但是,这有几个问题;一个是Power的任何方法都可能需要访问该变量,这会变得很尴尬,因为我已经向每个方法传递了一堆参数。在

我宁愿有一种“聪明”的解决方案,让一个对象“向上”看它在哪里。有这样的东西吗?在


Tags: 对象实例方法游戏角色参数玩家解决方案
1条回答
网友
1楼 · 发布于 2024-05-13 13:57:35

目前还不清楚对象是如何交互的,但下面是一个选项的最小示例:

def Power():

    def use(self, person):
        # do whatever


def Person():

    def __init__(self, power):
        self.power = power

    def use_power(self):
        self.power.use(self)

这为Person中的Power提供一个接口,并在used时显式地将Person传递给Power

相关问题 更多 >