Python - 将变量传递给函数

时间:2013-05-09 16:25:09

标签: python python-2.7

使用http://www.learnpythonthehardway.org/

中的优秀教程学习Python(2.7)

我正在尝试制作一个小文字输入游戏以提高我的技能,作为其中的一部分我试图在主角上添加一个健康计。我也在增加战斗,这将减少他们的健康。

以下代码用于在每场比赛开始时将玩家健康状况设置为100,它通过执行另一个功能" player_health"在一个名为" Set_Health"

的班级中
class Health():

    def store_health(self):

        d = Set_Health()
        d.player_health()
        local_health = d.player_health()

        print "Your health is at", local_health, "%"
        return local_health

当下面的" punch_received"执行功能后,球员的生命值降低10倍

class Combat():

    def punch_received(self):

        punch = 10

        x = Health()
        x.store_health()
        combat_health = x.store_health()

        combat_health = combat_health - punch
        print "You have been punched, your health is", combat_health, "%"

到目前为止一切顺利。它可能不是完美的或最好的方法,但它可以作为学习的基础。

我的问题是我不知道如何返回/发送" combat_health"另一个变量,例如" current_hero_health"这是另一个功能。

class Hero_Health():

    def current_hero_health(self):

        # I want to store a running total of the heros health in here

非常感谢任何帮助。谢谢Deepend

2 个答案:

答案 0 :(得分:0)

您只需向该功能添加更多参数即可。类中定义的函数的第一个参数(与@staticmethod@classmethod相对)是对象本身,函数的所有参数出现在:

之后
def current_hero_health(self, value):
    self.health = value

MyHealthObject.current_hero_health(5)

答案 1 :(得分:0)

您将current_hero_health作为Hero_Health的属性。

class Hero_Health():

    def __init__(self, current_h):
        self.current_hero_health = current_h

    def current_hero_health(self):
        self.current_hero_health = 3 ; # this is stored total of hero health

您可以使用self.current_hero_health从类的任何方法访问成员,并且它存储此类对象的全局计数。

希望这有帮助。