类型错误 'class' 对象不可调用。

6
我有一个名为MyStreamListener的类,我想从另一个文件中调用它,但是我得到了type error 'MyStreamListener' not callable。根据我的阅读,在引用用户自定义类时,可能是因为我正在尝试访问Python中的保留关键字,但是我已经尝试更改了类的名称。还有别的我做错的地方吗? functionality.py
from authenticate import CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN, ACCESS_TOKEN_SECRET
from twitter_stream import MyStreamListener

def oauth_authenticate():
        auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
        auth.set_access_token(ACCESS_TOKEN, ACCESS_TOKEN_SECRET)
        api = tweepy.API(auth)

        return api

def streaming():
        api = oauth_authenticate()
        streamListener = MyStreamListener()

        stream = tweepy.Stream(auth=api.auth, listener=streamListener())

if __name__ == '__main__':
        print "wanting to stream"
        streaming()
        print "EXITING"

twitter_stream.py

import tweepy

class MyStreamListener(tweepy.StreamListener):

        def on_status(self, status):
                print(status.text)

1
我也遇到了同样的问题。官方的Tweepy文档中也含有同样的错误。 - Adrian Grzywaczewski
1个回答

17

在这一行中:

stream = tweepy.Stream(auth = api.auth, listener = streamListener())
你正试图通过括号调用streamListener。相反,只需传递对象本身,即:
stream = tweepy.Stream(auth=api.auth, listener=streamListener)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接