Python 是否可以向后传递对象参数?

Python 是否可以向后传递对象参数?,python,Python,我有两个对象类:class-Hero(object):和class-Alien(object)每个类都有一个name参数,其中包含对象实例的名称。在每个类中,我都有一个名为defdie(self):的类方法,它定义了英雄被击中或未击中时发生的情况。虽然我能够引用自身内部的对象,但在执行向后操作时遇到了问题,即引用引用方法的对象。抱歉,如果这让人困惑,我的意思是: #this die and blast function is contained in both classes def die(s

我有两个对象类:
class-Hero(object):
class-Alien(object)
每个类都有一个
name
参数,其中包含对象实例的名称。在每个类中,我都有一个名为
defdie(self):
的类方法,它定义了英雄被击中或未击中时发生的情况。虽然我能够引用自身内部的对象,但在执行向后操作时遇到了问题,即引用引用方法的对象。抱歉,如果这让人困惑,我的意思是:

#this die and blast function is contained in both classes
def die(self):    
    #(pseudocode) if hit:
        print (self.name, " is hit!")
    #(pseudocode) elif not hit:
        print (enemy.name, " misses!") #<-- currently doesn't work because enemy is not defined in the die function
def blast(self, enemy):
    print(self.name," blasts ", enemy.name, "\n")
    enemy.die()

def main():
    heroObject = Hero()
    alienObject = Alien()
    heroObject.blast(alienObject)
#这两个类中都包含模具和爆破功能
def模具(自身):
#(伪代码)如果命中:
打印(self.name,“命中!”)
#(伪代码)elif未命中:

print(敌方名称,“misses!”)#如果需要从
die()
访问其他对象,请将其显式传递到函数中:

def die(self, enemy):    
    #(pseudocode) if hit:
        print (self.name, " is hit!")
    #(pseudocode) elif not hit:
        print (enemy.name, " misses!")

def blast(self, enemy):
    print(self.name," blasts ", enemy.name, "\n")
    enemy.die(self)

def main():
    heroObject = Hero()
    alienObject = Alien()
    heroObject.blast(alienObject)
请注意,当我们从
blast()
进入
die()
时,
self
敌人的含义是如何颠倒的


如果可以的话,有一个观察结果是,在
die()
中包含“if misses”逻辑似乎有点奇怪。这似乎意味着即使敌人没有死,也不会死,也可以调用
die()
。我认为逻辑属于函数之外。

你只需要<代码> DEF骰子(自我,敌人):?关闭主题,但你可能想考虑创建一个类似于<代码>战斗机< /COD>或<代码>字符< /Cord>类作为基类,并从中继承不同的字符类。这将允许您避免重复
blast
die
等的代码。您完全正确,我一直在想,因为我一直在重复代码。我想这将包括在我的下一个硬件作业:)谢谢你帮助我!像我这样的Python Noob需要所有能得到的帮助。