Как я могу передать пустую строку в тройную кавычку в Python?
Вот функция, использующая тройную кавычку с большим количеством подэлементов:
def pass_empty_string(param):
from lxml import etree
xml = etree.XML(f'''
<root>
<child>text</child>
<child>{param}</child>
...
</root>''')
return xml
Можно ли получить пустой </child>
элемент, когда param
становится None
или же ''
значение?
3 ответа
Решение
Вы можете сделать это с or
:
f"<child>{param or ''}</child>"
Все в фигурных скобках оценивается как выражение, так что...
>>> param = None
>>> f"<child>{param or ''}</child>"
'<child></child>'
>>> param = ''
>>> f"<child>{param or ''}</child>"
'<child></child>'
>>> param = "some valid child"
>>> f"<child>{param or ''}</child>"
'<child>some valid child</child>'
И то и другое ''
а также None
являются ложными значениями, поэтому он будет возвращаться к RHS or
, которая будет просто пустой строкой.
Просто if
Заявление сделаю:
def pass_empty_string(param):
if not param:
param = ''
xml = etree.XML(f'''<root>
<child>text</child>
<child>{param}</child>
</root>''')
return xml
xml
выглядит так:
<root>
<child>text</child>
<child></child>
</root>
Не могли бы вы просто использовать if
заявления?
def pass_empty_string(param):
from lxml import etree
if param is None or param == '':
return etree.XML(f'<child></child>')
xml = etree.XML(f'''
<root>
<child>text</child>
<child>{param}</child>
...
</root>''')
return xml