我试图更好地了解__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/

10-13 02:34