unexpected - TypeError:'NoneType'类型的对象没有len()

时间:2014-03-05 08:57:59

标签: python-2.6

我知道这个错误意味着什么,但我在一个非常意想不到的地方看到它:

if rate and len(rate) == 1:

TypeError:“NoneType”类型的对象没有len()

背景是:

rate = re_search_once("(\d+)", ratetxt)
if rate and len(rate) == 1:

其中re_search_once只是正则表达式提取的语法糖。

无论如何,无论“速率”如何,Python如何尝试评估NoneType的“和”的第二部分? (在这种情况下,它只是None,NoneType的唯一值)

我无法检查“rate”的实际值,只是在日志中注意到了它。

在Ubuntu 10.04.4 LTS上使用python 2.6.5

更新了

的内容
def re_search_once(pattern, string, flags=0):
    if string is None:
        return None
    mo = re.compile(pattern).search(string, flags)
    if mo:
        gs = mo.groups()
        if len(gs) == 1:
            return gs[0]
        else:
            return gs
    else:
        return None

0 个答案:

没有答案