【发布时间】:2021-03-26 23:36:58
【问题描述】:
我有一些代码根据文档从 Tweepy API 调用函数:
api = tweepy.API(auth)
...
api.create_friendship(tweet.user.id)
或者我已经尝试过重载:
api.create_friendship(tweet.user.username)
两种实现都会产生错误:
create_friendship() takes 1 positional argument but 2 were given
做一些研究,可以通过将 self 的实例传递给函数来避免这个错误,如下所示:
@payload('user')
def create_friendship(self, **kwargs):
""" :reference: https://developer.twitter.com/en/docs/twitter-api/v1/accounts-and-users/follow-search-get-users/api-reference/post-friendships-create
"""
return self.request(
'POST', 'friendships/create', endpoint_parameters=(
'screen_name', 'user_id', 'follow'
), **kwargs
)
但是,我只是在运行一个不属于类的简单脚本,因此我没有任何与 self 相关的范围。有没有简单的方法解决这个问题?
使用 python 3.9
【问题讨论】:
-
你正在调用
api.create_friendship,这意味着它实际上是一个类的一部分。payload装饰器是否会自动将函数插入到其他地方的类中?如果包含self参数,它是否有效?您可能正在尝试解决您没有遇到的问题。 -
self在这种情况下不是您从脚本中传递的参数,它是一种语法糖,主要用于管理继承。 Relevant SO answer -
你能分享一下
tweet.user.username和tweet.user.id导致这个错误抛出的内容吗?
标签: python python-3.x tweepy