我正在用Python编写游戏。玩家角色和敌人角色是Person
的实例。字符可以具有类Power
的权力。当角色在战斗中使用力量时,Power
物体需要知道谁拥有力量(为了施加力量所具有的任何效果)。如何让Power
对象知道Person
是谁?
一个明显的解决方案是包含一个存储对Person
的引用的创建参数。但是,这有几个问题;一个是Power
的任何方法都可能需要访问该变量,因为我已经将一堆参数传递给每个方法,这变得很尴尬。
我宁愿拥有一种“聪明”的解决方案,它允许对象“向上看”以查看它的位置。有这样的事吗?
答案 0 :(得分:2)
目前还不清楚您的对象究竟是如何交互的,但这是一个选项的最小示例:
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)
这为Power
中的Person
提供了一个界面,并在Person
d时Power
明确地传递给use
。