Python:将 None 转换为空字符串的最惯用方法?

新手上路,请多包涵

执行以下操作最惯用的方法是什么?

 def xstr(s):
    if s is None:
        return ''
    else:
        return s

s = xstr(a) + xstr(b)

更新: 我采纳了 Tryptich 关于使用 str(s) 的建议,这使得该例程适用于字符串以外的其他类型。 Vinay Sajip 的 lambda 建议给我留下了深刻的印象,但我想让我的代码相对简单。

 def xstr(s):
    if s is None:
        return ''
    else:
        return str(s)

原文由 Mark Harrison 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 728
2 个回答

如果你真的希望你的函数表现得像 str() 内置的,但当参数为 None 时返回一个空字符串,请执行以下操作:

 def xstr(s):
    if s is None:
        return ''
    return str(s)

原文由 Kenan Banks 发布,翻译遵循 CC BY-SA 2.5 许可协议

可能最短的是 str(s or '')

因为 None 为假,如果 x 为假,“x 或 y”返回 y。有关详细说明,请参阅 布尔运算符。它很短,但不是很明确。

原文由 dorvak 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题