Python 将函数中设置的变量传递给类中的方法

Python 将函数中设置的变量传递给类中的方法,python,Python,我很困惑如何将函数中设置的变量传递给类中的方法 以下是相关代码: class monster(): def __init__(self, health, name): print(name + " has been born!") self.name = name self.health = health self.stats(name, health) def stats(self, name, health)

我很困惑如何将函数中设置的变量传递给类中的方法

以下是相关代码:

class monster():

    def __init__(self, health, name):
        print(name + " has been born!")
        self.name = name
        self.health = health
        self.stats(name, health)

    def stats(self, name, health):
        self.name = name
        self.health = health
        print(self.name + "  -  " + str(self.health) + " HP")
我使用程序开头的这一行创建了
monster()
的实例:

gameMonster = monster(20, name)
但是,您可以看到函数
stats()
应该显示怪物的名称健康,这是前面设置的。游戏处于循环中,因此每次“回合”后都会调用
stats()
函数。但是,我需要将变量
name
health
传递给
stats()
,以便能够显示它们,但似乎不知道如何显示

我的问题是:

如何将初始化方法时声明的变量传递给同一类中的另一个方法?


感谢您的帮助。

您无需再次设置它们,它们已在实例上运行:

class Monster(object):    
    def __init__(self, health, name):
        print(name + " has been born!")
        self.name = name
        self.health = health
        self.stats()

    def stats(self):
        print(self.name + "  -  " + str(self.health) + " HP")
使用方法:

>>> monster = Monster(20, 'Boris')
Boris has been born!
Boris  -  20 HP

>>> monster.stats()
Boris  -  20 HP

>>> monster.health -= 5
>>> monster.stats()
Boris  -  15 HP

“我需要将变量
name
health
传递到
stats()
”-为什么?!您已经在
中设置了它们,为什么不通过
self访问它们呢。
?我强烈建议您阅读关于Python类/OOP的教程。这是非常基本的。请阅读。TL;DR:您已经在init方法中将变量设置为属性
self.name
self.health
,这意味着您可以在类的所有其他方法中以
self.name
self.health
的形式访问它们。