Python中是否有F-string专用语法实现条件前缀拼接?
实现方案
你可以用Python F-string结合布尔表达式的特性来搞定,不用写显式的条件语句或者str.join(),写法很简洁:
reference = "file" modifier = "read" print(f"{reference}{modifier and '.' + modifier}") # 输出: file.read modifier = "" print(f"{reference}{modifier and '.' + modifier}") # 输出: file
为啥能行
- Python里空字符串
""属于布尔假值,当modifier是空的时候,modifier and '.' + modifier直接返回空字符串,所以最终只输出reference。 - 要是
modifier非空,它就是布尔真值,and会返回后面的'.' + modifier,自然就拼出了带点的格式。
这种写法和Twig里的{{ reference ~ (modifier ? '.' ~ modifier : '') }}思路一致,是更贴合Python风格的实现方式。
内容的提问来源于stack exchange,提问作者creative-resort
相关产品推荐
相关产品推荐

