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
的形式访问它们。