Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何访问对象的类值,反之亦然?_Python_Class - Fatal编程技术网

Python 如何访问对象的类值,反之亦然?

Python 如何访问对象的类值,反之亦然?,python,class,Python,Class,我是一个相当新的程序员,最近我学习了一些试图简化的类,我想知道如何将一个类的实例变量访问到另一个类的实例变量,反之亦然,在代码中,我想让敌人知道英雄的生命值,让敌人知道英雄受到的伤害,看看注释部分。请帮忙,我知道我应该试着自己解决这个问题,但我试过了,却没有人帮我 class Hero(object): def __init__(self,name): self.name = name #hero name self.health = 100 #hero

我是一个相当新的程序员,最近我学习了一些试图简化的类,我想知道如何将一个类的实例变量访问到另一个类的实例变量,反之亦然,在代码中,我想让敌人知道英雄的生命值,让敌人知道英雄受到的伤害,看看注释部分。请帮忙,我知道我应该试着自己解决这个问题,但我试过了,却没有人帮我

class Hero(object):
    def __init__(self,name):
        self.name = name #hero name
        self.health = 100 #hero health
        self.damage = 20 #hero damage
        print "My health now is ",self.health,
    def gethit (self):
        self.health = self.health - 10 #Ten is the Enemy damage value but I don't know how to get from enemy class so put constant
        print"\nOuch my health now is ",self.health

class Enemy(Hero):
    def __init__(self,name):
        self.damage = 10 #enemy damage
        self.name = name #enemy name
        self.health = 100 #enemy name
        print "Bwahahah I know you have ",#want hero health of hero after being hit value of health after gethit function in Hero
mark = Hero("Mark")
mark.gethit()
jake = Enemy("Jake")

这不太正确。您希望英雄和敌人都从其他类继承,比如Person,但现在可以将其作为普通Python对象类。现在要回答您的问题,mark必须是一个属性、字段或类值,因为您在类中引用它。你需要为每个敌人添加一个英雄,然后你就可以获得这个英雄的生命值。看一看

class Hero(object):
    def __init__(self,name):
        self.name = name #hero name
        self.health = 100 #hero health
        self.damage = 20 #hero damage
        print "My health now is ",self.health,
    def gethit (self):
        self.health = self.health - 10 #Ten is the Enemy damage value but I don't know how to get from enemy class so put constant
        print"\nOuch my health now is ",self.health

class Enemy(object):
    def __init__(self, name, hero):
        self.damage = 10 #enemy damage
        self.name = name #enemy name
        self.health = 100 #enemy name
        self.hero = hero
        print "Bwahahah I know you have " + self.hero.health
mark = Hero("Mark")
mark.gethit()
jake = Enemy("Jake", mark)

打印bwahah我知道你有+self.hero.health实际上是打印bwahah我知道你有,self.hero.health为了整个事情的顺利进行,我自己想出来了,因为你再次感谢我的想法:@SamThomas你可以通过接受答案,投票认为答案有用或两者都有用来感谢布尔巴基!啊,好吧,我是新来的论坛,我接受了,不能投票,因为我需要15个信誉点