为什么我的功能没有定义?

时间:2013-04-20 16:27:43

标签: python list filter

我不明白为什么python找不到我的函数。

我创建一个功能共享:

def share(item):
    if re.findall(r'\bshare',item):                                                               
        return True                                                                               
    return False

我只想用它来过滤列表

item['twurlshort'] = filter(lambda item: not share, item['twurlshort'])

但是python说:exceptions.NameError: global name 'share' is not defined

我的过滤功能属于同一类。 谁知道为什么呢?

1 个答案:

答案 0 :(得分:0)

Python并不是这个,所以你的功能不在范围内。

请检查您的功能是否

  1. 在顶级范围内,
  2. 或者如果没有,与调用者的范围相同,
  3. 或者如果它在另一个模块中,您已导入该模块,
  4. 或者如果在同一个类中,则将其称为附加到实例
  5. 在您的情况下,您需要更改两件事:

    Class Whatever:
        def share(self, item):
            # ...
    
    item['twurlshort'] = filter(lambda item: not item.share, item['twurlshort'])