0

如何将 %s 替换为已定义/非空的变量字符串?或者更确切地说,这样做的 Pythonic 或语法糖是什么?

例子:

# Replace %s with the value if defined by either vehicle.get('car') or vehicle.get('truck')
# Assumes only one of these values can be empty at any given time
# The get function operates like http://docs.python.org/2/library/xml.etree.elementtree.html#xml.etree.ElementTree.Element.get
logging.error("Found duplicate entry with %s", vehicle.get('car') or vehicle.get('truck'))  
4

2 回答 2

1

你有没有尝试过这样的事情?

logging.error("Found duplicate entry with %s" % (vehicle.get('car') or vehicle.get('truck')))

或者如果truck也是空的,你可以返回一个默认值:

logging.error("Found duplicate entry with %s" % (vehicle.get('car') or vehicle.get('truck', 'default')))
于 2013-01-30T08:24:44.227 回答
1

我想你想要这个:

'Found duplicate entry with %s' % (vehicle.get('car') or vehicle.get('truck'))

这将用'%s'非空字符串替换 (假设只有一个是非空的)。如果两者都包含文本,它将被替换为的输出vehicle.get('car')

您还可以使用这种类型的字符串格式:

'Found duplicate entry with {0}'.format(vehicle.get('car') or vehicle.get('truck'))

这将返回相同的结果。

于 2013-01-30T08:24:16.987 回答