2016-10-03 9 views
0

私はtweepyのソースコードを掘り下げて、すべてがどのように設計されているかを感じています。私は少しAPIクラスとbind_api関数と混同しています。 tweepyソースはここにあります:https://github.com/tweepy/tweepyTweepy APIバインダーとPythonのプロパティ

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は、その定義には引数を取りませんが、(ID = '123')api.get_statusを呼び出すと、正常に動作します。私はここで何が起こっているのが不思議です。これは私の最初の質問に関係していると思います。

3)tweepyがbind_apiと同じフォーマットを使用している場合、どのようにしてAPI呼び出しに供給されるキーワード引数を取得できますか?たとえば、id='value'キーワードがget_statusに指定されていないときに「No id supplied」と印刷したい場合、どうすればよいでしょうか?

ありがとうございました。うまくいけば、私は十分に明確だった。

答えて

0

先日私がこれを頼んだとき、私は考えていませんでした。

bind_apiが関数を返しています。この関数は、そのプロパティが呼び出されるときに呼び出されます。だから、それぞれのAPIコールは@propertyで、私の2番目の質問にも答えます。