Tweepy api: create_friendship() 采用 1 个位置参数,但给出了 2 个

Tweepy api: create_friendship() takes 1 positional argument but 2 were given

根据文档,我有一些代码可以从 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
    )

不过我只是 运行 一个不属于 class 的简单脚本,所以我没有任何与自身相关的范围。有解决这个问题的简单方法吗?

使用 python 3.9

签名和文档注释应该让您了解:

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
    """

据此,您应该能够推断出 create_friendship 方法采用一个(隐式)位置参数(API class 的实例),以及一些关键字参数。我假设预期的关键字参数是 screen_name=user_id=follow=,如 documentation page whose link appears in the doc comment.

中所述

这意味着函数应该被调用为

api.create_friendship(user_id=tweet.user.id)