Discuss / Python / 请教各位大神个问题

请教各位大神个问题

Topic source

这里面return s and s.strip() 是什么意思? 貌似跟只返回s.strip()是一样的啊?

def not_empty(s):
    return s and s.strip()

廖雪峰

#2 Created at ... [Delete] [Delete and Lock User]

传入None测试

xigaohu

#3 Created at ... [Delete] [Delete and Lock User]

如果只用s.strip()的时候,当s为None的时候,s.strip()就会报一个AttributeError的错误,因为None没有strip()这个方法。

当用s and s.strip()的时候,s 为None时就直接返回False了,不会验证 s.strip()这个方法的值,也就不会报错了。

如果你能保证传入的数组里面没有None这个值,那么两种方法就咩有区别了

这样理解: isinstance(s, str) and s.strip()


  • 1

Reply