Tweepy API:create_Friendship()接受1个位置参数,但给出了2个 [英] Tweepy api: create_friendship() takes 1 positional argument but 2 were given

查看:15
本文介绍了Tweepy API:create_Friendship()接受1个位置参数,但给出了2个的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一些代码根据文档调用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相关的作用域。有什么简单的方法可以绕过这个问题吗?

使用python3.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类的实例)和一些关键字参数。我假设预期的关键字参数是screen_name=user_id=follow=,如documentation page whose link appears in the doc comment中所述。

这意味着该函数可能应该调用为

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

这篇关于Tweepy API:create_Friendship()接受1个位置参数,但给出了2个的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆