Vin*_*eau 5 python methods function python-3.x
我正在努力更好地理解该__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
Run Code Online (Sandbox Code Playgroud)
在学习该__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__)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2098 次 |
| 最近记录: |