将None转换为空字符串的最惯用方法是什么?

218 投票
17 回答
316899 浏览
提问于 2025-04-15 12:27

以下是最符合习惯的做法是什么呢?

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)

17 个回答

175

在编程中,有时候我们会遇到一些问题,特别是在使用某些工具或库的时候。这些问题可能会让我们感到困惑,尤其是当我们刚开始学习编程的时候。比如,有人可能在使用某个特定的功能时,发现它的表现和预期的不一样。这种情况下,了解问题的根源就显得非常重要。

通常,解决这类问题的第一步是仔细检查代码,看看有没有拼写错误或者逻辑上的问题。接着,可以查阅相关的文档,看看这个功能的使用方法是否正确。有时候,社区的讨论也能提供一些有用的线索,帮助我们找到解决方案。

总之,遇到问题时不要慌张,逐步分析,查找资料,通常都能找到答案。

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

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

因为在Python中,None被认为是假的,而“x or y”这个表达式的意思是:如果x是假的,就返回y。想了解更多,可以查看布尔运算符的详细解释。这种写法虽然简短,但不太明确。

117

如果你希望你的函数像内置的 str() 函数那样工作,但在传入的参数是 None 的时候返回一个空字符串,可以这样做:

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

撰写回答