无法在继承 class 中使用属性
Unable to use attributes in inherited class
创建此类对象时:
from tweepy.streaming import StreamListener
from tweepy import OAuthHandler
from tweepy import Stream
class listener(StreamListener):
def __init__(self, consumer_key, consumer_secret, access_token, access_token_secret, a):
StreamListener.__init__(self)
self.auth = OAuthHandler(consumer_key, consumer_secret)
self.auth.set_access_token(access_token, access_token_secret)
self.stream = Stream(self.auth, self)
self.stream.filter(track=tweet_filter.strip().split())
self.a = 2
print access_token
def on_data(self, data):
data_decoded = json.loads(data)
body = data_decoded['text'].encode('utf-8')
print self.a
if __name__ == '__main__':
# parse input arguments
t_listener = listener(consumer_key=params["consumer_key"],
consumer_secret=params["consumer_secret"],
access_token=params["access_token"], access_token_secret=params["access_token_secret"],
a=3)
我没有看到 access_token 打印出来,我也收到错误消息
'listener' object has no attribute 'a'
self.stream.filter()
从来没有 returns。这是 Tweepy API 调用 Twitter 并循环接收 Twitter 流供听众处理的点。您不能在侦听器初始化程序中创建流,因为流需要在开始之前完全创建侦听器。
只是不要将 Stream()
处理放在侦听器中。 单独处理并传入StreamListener()
实例外部__init__
方法。
如果您的侦听器必须访问 API,只需将其传入即可;原来的 StreamListener.__init__()
method 接受一个 api
参数:
from tweepy.streaming import StreamListener
from tweepy import API
from tweepy import OAuthHandler
from tweepy import Stream
class listener(StreamListener):
def __init__(self, api=None, a=None):
StreamListener.__init__(self, api=api)
self.a = a
def on_data(self, data):
data_decoded = json.loads(data)
body = data_decoded['text'].encode('utf-8')
print self.a
if __name__ == '__main__':
# parse input arguments
auth = OAuthHandler(params["consumer_key"], params["consumer_secret"],)
auth.set_access_token(access_token=params["access_token"], params["access_token_secret"])
api = tweepy.API(auth)
listener = listener(api, 3)
stream = Stream(self.auth, listener)
stream.filter(track=tweet_filter.strip().split())
创建此类对象时:
from tweepy.streaming import StreamListener
from tweepy import OAuthHandler
from tweepy import Stream
class listener(StreamListener):
def __init__(self, consumer_key, consumer_secret, access_token, access_token_secret, a):
StreamListener.__init__(self)
self.auth = OAuthHandler(consumer_key, consumer_secret)
self.auth.set_access_token(access_token, access_token_secret)
self.stream = Stream(self.auth, self)
self.stream.filter(track=tweet_filter.strip().split())
self.a = 2
print access_token
def on_data(self, data):
data_decoded = json.loads(data)
body = data_decoded['text'].encode('utf-8')
print self.a
if __name__ == '__main__':
# parse input arguments
t_listener = listener(consumer_key=params["consumer_key"],
consumer_secret=params["consumer_secret"],
access_token=params["access_token"], access_token_secret=params["access_token_secret"],
a=3)
我没有看到 access_token 打印出来,我也收到错误消息
'listener' object has no attribute 'a'
self.stream.filter()
从来没有 returns。这是 Tweepy API 调用 Twitter 并循环接收 Twitter 流供听众处理的点。您不能在侦听器初始化程序中创建流,因为流需要在开始之前完全创建侦听器。
只是不要将 Stream()
处理放在侦听器中。 单独处理并传入StreamListener()
实例外部__init__
方法。
如果您的侦听器必须访问 API,只需将其传入即可;原来的 StreamListener.__init__()
method 接受一个 api
参数:
from tweepy.streaming import StreamListener
from tweepy import API
from tweepy import OAuthHandler
from tweepy import Stream
class listener(StreamListener):
def __init__(self, api=None, a=None):
StreamListener.__init__(self, api=api)
self.a = a
def on_data(self, data):
data_decoded = json.loads(data)
body = data_decoded['text'].encode('utf-8')
print self.a
if __name__ == '__main__':
# parse input arguments
auth = OAuthHandler(params["consumer_key"], params["consumer_secret"],)
auth.set_access_token(access_token=params["access_token"], params["access_token_secret"])
api = tweepy.API(auth)
listener = listener(api, 3)
stream = Stream(self.auth, listener)
stream.filter(track=tweet_filter.strip().split())