2016-03-20 2 views
0

私はAPIを呼び出すためにPython requestsライブラリを使用しており、すべてのリクエストに引数(&t=abcd)を追加します。Pythonリクエストを使用してすべての呼び出しのURLに1つの引数をpythonで追加する方法

import requests 
def callTheApi(url): 
    return requests.get(url, params={'t': 'abcd'}) 

を何とか私は多分デコレータか何かを使用して、これを行うには、よりクリーンで神託方法があるという考えを持っている:私はもちろん、機能、次のように行うことができます。誰がどのように知っていますか?

+3

あなたは 'functools.partial'を考えがあり、あるいは単に単純なラッパー関数? – jonrsharpe

+0

他にもパラメータを取得する可能性があることを追加することを意味しますか? – schwobaseggl

+0

もちろん、あなたは 'requests.get = my_decorator(requests.get)'を再割り当てすることができますが、あなたの質問のサンプルははるかに合理的です。他の関数をデファクトスタンダードライブラリに再バインドすると、コードを読み取った人を誤解させ、それらを大いに誤解させるでしょう。まず第一に、暗黙的より明示的です。第2に、リクエストを使用し、この余分なパラメータを必要としない追加のコードは、単に破損します。 –

答えて

1

あなたはfunctools.partialを使用することができます。

from functools import partial 
import requests  
call_the_api = partial(requests.get, params={"t": "abcd"})) 
call_the_api(url) 

あなたはまた、例えば、初期のものを上書き/拡張するために追加のキーワード引数を渡すことができます。

call_the_api(url, params={"t": "efgh"}) 
関連する問題