我继承了已设置 init 方法的类。 我想在此方法中添加一个arg,以及几行代码。 我怀疑我可以用super来做这件事,但我不太确定我发现的例子和对我来说总是有意义的。
示例代码和说明:
bot模块有两个类:Bot和BotStreamListener
BotStreamListener继承自tweepy.StreamListener,它已经定义了 init
我需要向这个类方法附加一个arg和一些代码,以便BotStreamListener类中的方法知道Bot类的实例化实例。 (在下面的示例中,它是mybot)。
...
def main():
try:
me = api.me()
print "Starting userstream for %s ( %s )" %(me.name, me.screen_name)
mybot = bot.bot(api)
#What it looks like now
stream = tweepy.Stream(auth, bot.BotStreamListener(api))
#What i would like it to be able to handle
stream = tweepy.Stream(auth, bot.BotStreamListener(api, mybot))
简而言之,我想在继承的 init 类方法中添加一些args和一些代码,而无需重新定义方法。 我使用的是python 2.7,任何帮助都是合适的。
答案 0 :(得分:1)
我不熟悉tweepy,除了知道它是什么,但这应该让你开始:
# bot.py
class BotStreamListener(StreamListener):
def __init__(api, bot):
super(self.__class__, self).__init__(api)
# Do your stuff
self.bot = bot
# Do more of your stuff
mybot = bot.bot(api)
bsl = BotStreamListener(api, mybot)