Python 获取对象的上下文
我正在用Python编写一个游戏。玩家角色和敌人角色都是Python 获取对象的上下文,python,oop,python-3.x,introspection,Python,Oop,Python 3.x,Introspection,我正在用Python编写一个游戏。玩家角色和敌人角色都是Person的实例。字符可以具有幂,属于幂类Power。当角色在战斗中使用异能时,异能对象需要知道谁拥有该异能(以便应用该异能的任何效果)。我如何才能让Power对象知道它的人是谁 一个显而易见的解决方案是包含一个creation参数,该参数存储对人员的引用。然而,这有几个问题;一个是,任何Power方法都可能需要访问该变量,这变得很尴尬,因为我已经向每个方法传递了一堆参数 我宁愿有一种“聪明”的解决方案,允许对象“向上”查看它在哪里。有类
Person
的实例。字符可以具有幂,属于幂类Power
。当角色在战斗中使用异能时,异能
对象需要知道谁拥有该异能(以便应用该异能的任何效果)。我如何才能让Power
对象知道它的人是谁
一个显而易见的解决方案是包含一个creation参数,该参数存储对人员的引用。然而,这有几个问题;一个是,任何Power
方法都可能需要访问该变量,这变得很尴尬,因为我已经向每个方法传递了一堆参数
我宁愿有一种“聪明”的解决方案,允许对象“向上”查看它在哪里。有类似的东西吗?不清楚对象是如何交互的,但下面是一个选项的最小示例:
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
提供了一个接口,并在使用d时将Person
显式地传递给Power
。好的,我以前没有这样做过。非常简单明了,但结构也很好。似乎是要走的路。。。