Есть ли симпатичный способ уступить, если в Python 3.3?

Есть ли способ сделать этот код красивее?

strong = li.find_all ("сильный")
если сильный:
  yield li.find_all("сильный")

Я имею в виду что-то вроде этого:

strong = li.find_all ("сильный")
yield li.find_all("сильный"), если сильный

2 ответа

Решение

Вы бы использовали:

strong = li.find_all("strong")
if strong:
    yield strong

вместо звонка find_all() снова (что в BeautifulSoup дает тот же результат, но снова работает).

Нет "условной доходности". Вы могли бы подшутить с yield from но я бы рекомендовал против этого.

Вы можете сделать что-то вроде этого:

      strong = li.find_all("strong")
strong and (yield strong)

Он краткий и красивый, но может быть трудно понять, что он делает во время отладки.

Другие вопросы по тегам