Есть ли симпатичный способ уступить, если в 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)
Он краткий и красивый, но может быть трудно понять, что он делает во время отладки.