我需要从具有.__str__()
方法的类列表中获取一个字符串。
所以魔药是一个类药水的对象列表。药水__str__
方法只返回药水的名称。
我想过做这样的事情
result = "\n".join(potions)
但只能连接字符串,我不知道如何为连接中的每个类调用__str__()
。
或者我应该做这样的事情:
for potion in potions:
result += "{0}\n".format(potion)
或者可能是别的什么?
答案 0 :(得分:7)
result = "\n".join(str(potion) for potion in potions)
也就是说,使用生成器表达式(也可以使用列表推导 -
result = "\n".join([str(potion) for potion in potions])
为str()
中的每个potion
致电potions
。
答案 1 :(得分:3)
稍微短一点的解决方案:
result = "\n".join(map(str, potions))