Могу ли я присоединиться к списку классов? - PullRequest
3 голосов
/ 11 января 2012

Мне нужно вывести строку из списка классов, у которых есть метод .__str__().

Итак, potions - это список объектов класса Potion.Зелье __str__ метод просто возвращает название зелья.Я думал сделать что-то вроде этого

result = "\n".join(potions)

, но можно объединить только строку, и я не знаю, как вызвать __str__() для каждого класса внутри объединения.

Или я должен сделать что-то вродеэто:

for potion in potions:
    result += "{0}\n".format(potion)

Или может быть что-то еще?

Ответы [ 2 ]

7 голосов
/ 11 января 2012
result = "\n".join(str(potion) for potion in potions)

То есть, используя выражение генератора (также можно использовать и понимание списка -

result = "\n".join([str(potion) for potion in potions])

для вызова str() для каждого potion в potions.

3 голосов
/ 11 января 2012

Чуть короче решение:

result = "\n".join(map(str, potions))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...