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

2024-09-27 00:20:10 发布

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

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

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")

Tags: nameselfinitisdefclassprinthealth
1条回答
网友
1楼 · 发布于 2024-09-27 00:20:10

这不太对。您希望HeroEnemy都从其他类继承,比如说Person(但您现在可以将其保留为普通的Python object类)。现在要回答您的问题,mark必须是类Enemy中的属性(或者您所指的字段或类值)。你需要“为每个敌人添加一个英雄”,然后你就能获得这个英雄的生命值。看一看

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)

相关问题 更多 >

    热门问题