Gre*_*nev -3 python lxml string-literals f-string
这是一个使用带有大量子元素的三引号f-string的函数:
def pass_empty_string(param):
from lxml import etree
xml = etree.XML(f'''
<root>
<child>text</child>
<child>{param}</child>
...
</root>''')
return xml
Run Code Online (Sandbox Code Playgroud)
获得或重视</child>时param是否可以获得空元素?None''
你可以用or:
f"<child>{param or ''}</child>"
Run Code Online (Sandbox Code Playgroud)
大括号中的任何内容都被评估为表达式,所以......
>>> 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>'
Run Code Online (Sandbox Code Playgroud)
这两个''和None是falsy值,所以它会回落到的RHS中or,这将只是一个空字符串.