如何防范python中的null

时间:2011-02-09 21:18:55

标签: python

在python中,如何检查字符串是空还是空?

在c#中,我们有String.IsNullOrEmpty(some_string)

另外,我正在做一些正则表达式:

p = re.compile(...)

a = p.search(..).group(1)

如果小组在索引1没有东西,这会破坏,如何防范这个?即如何安全地重写这两行?

5 个答案:

答案 0 :(得分:6)

检查一下。明确比隐含更好,还有一行不会杀了你。

a = p.search(...)
if a is not None:
    # ...

答案 1 :(得分:2)

re模块的典型方法是:

m = p.search(..)
if m: 
    a = m.group(1)

m = p.search(..)
a = m.group(1) if m else ''

不幸的是(或幸运的是),Python不允许你在一行中写下所有内容。

答案 2 :(得分:1)

p.search(..)将返回,如果找不到任何内容,那么您可以这样做:

a = p.search(..)
if a is None:
    # oops
    print "Nothing found"
else:
    print "Hooray!"

答案 3 :(得分:0)

“null或empty”我认为你的意思是None""。幸运的是,在python中,这两个都评估为False

如果您的C#看起来像这样:

if (! String.IsNullOrEmpty(some_string))
    do_something();

然后你的Python看起来像这样:

if not some_string:
    do_something()

答案 4 :(得分:-2)

这可能不正确,但我认为如果p!= None(或者它可能为null / NULL)可以使用