我一直在挖掘tweepy源代码,试图了解一切是如何设计的。我对API
类和bind_api
函数感到困惑。可在此处找到tweepy源代码:https://github.com/tweepy/tweepy
1)为什么几乎每个api都称之为财产?这实际上是做什么的,它提供了什么好处?
2)bind_api
如何将参数输入每个api调用?例如,
@property
def get_status(self):
""" :reference: https://dev.twitter.com/rest/reference/get/statuses/show/%3Aid
:allowed_param:'id'
"""
return bind_api(
api=self,
path='/statuses/show.json',
payload_type='status',
allowed_param=['id']
)
get_status
在其定义中不带任何参数,但调用api.get_status(id ='123')可以正常工作。我很好奇这里发生了什么。我认为这与我的第一个问题有关。
3)遵循同样的格式,tweepy正在使用bind_api
,如何获得被提供给api调用的关键字参数?例如,如果我想在id='value'
没有提供get_status
关键字时打印“无ID提供”,我该如何处理呢?
感谢您的帮助。希望我足够清楚。
答案 0 :(得分:0)
当我前几天问这个时,我没想到。
bind_api
正在返回一个函数。然后在调用该属性时调用此函数。这就是为什么每个api调用都是@property
,它也回答了我的第二个问题。