我试图更好地了解__str__
函数的正确用法。
假设我有一个非常简单的类,称为Character,可用于游戏中,如下所示:
class Character(object):
""" A game character. """
def __init__(self, name):
self.name = name
self.poisoned = False
self.strength = random.randrange(10, 20)
self.max_strength = self.strength
self.dexterity = random.randrange(10, 20)
self.max_dexterity = self.dexterity
self.hit_points = 100
self.spell_points = 100
self.weapon = []
self.spell = []
self.items = []
self.aura = []
self.xp = 0
在学习
__str__
函数之前,我将定义一个名为print_stats(self)
的方法,该方法将通过Character.print_stats()
打印字符统计信息。在学习了__str__
之后,尽管它似乎是一个用于定义和显示对象统计信息的函数,类似于我对print_stats(self)
所做的工作……但是在使用它并学习返回的值必须是字符串而不是包含整数,看来我的假设是错误的。因此,现在我的问题是,如何正确使用
__str__
的一些示例?使用该功能是否可以使我提供的示例受益? 最佳答案
打印统计信息是__str__()
的一种很好的用法。只需使用字符串格式来返回单个字符串值:
def __str__(self):
return ('Name: {name}\n'
'Poisoned: {poisoned}\n'
# etc.
).format(**self.__dict__)
关于python - 更好地了解__str__的用法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13593191/