Я просматривал беглую книгу по питону, когда наткнулся на следующий код
def tag(name, *content, cls=None, **attrs):
"""Generate one or more HTML tags"""
if cls is not None:
attrs['class'] = cls
if attrs:
attr_str = ''.join(' %s="%s"' % (attr, value)
for attr, value
in sorted(attrs.items()))
else:
attr_str = ''
if content:
return '\n'.join('<%s%s>%s</%s>' %
(name, attr_str, c, name) for c in content)
else:
return f'<{name}{attr_str} />'
Поскольку эта книга была представлена до появления f-строк, я подумал, что смогу сделать следующую замену
if content:
return '\n'.join(f'<{name}{attr_str}>{[c for c in content]}<{name}>')
Возвращает каждый символ на новой строке. Вместо желаемого результата: '<p>hello</p>'
Нужен ли здесь% форматер? Может ли этот результат быть достигнут с использованием понимания списка?