我希望使用
目前,我有一些函数可以向
自然地,我只想将额外的方法添加到
然而,这并不起作用,因为
python-twitter
,但需要扩展Status
类以添加一些新的方法和属性。那么最符合Python风格的方式是什么?目前,我有一些函数可以向
Status
添加属性和新功能,例如:process_status(status):
status.datetime = ...
status.phrase = ...
prettyprint_status(status):
# do something...
自然地,我只想将额外的方法添加到
Status
构造函数中。我发现了一个stackoverflow问题讨论,建议创建一个名为ext-twitter
的新模块,其中包含每个类的新实现,如下所示:# ext_twitter.py
import twitter
class Api(twitter.Api):
pass
class Status(twitter.Status):
def __init__(self, *args):
twitter.Status.__init__(self, *args)
self.args = args
self.time = parseTime(self.created_at)
self.phrase = ...
def prettyprint(self):
# something
然而,这并不起作用,因为
Status
类是由Twitter API对象生成的,在这里ext-twitter.Api()
调用python-twitter.Api()
,后者没有对我的扩展Status类的引用。
有没有办法将我的功能添加到python-twitter模块中,而不必分叉它并制作自己的版本?
super
更好地执行超类构造函数的调用。谷歌搜索“Python super considered super”以获取良好的指南。如果您正在使用Py3k,则更好。 - Marcin