2017-08-15 6 views
2

リクエストモジュールを使用するサードパーティAPIを使用していたとします。同様に:モジュールタイプ定義を上書きする

import requests 

class ThirdPartyAPI(object): 
    ''' 
    A pretend API 
    ''' 
    def __init__(self): 
     self._session = requests.Session() 

そして、私はAPIのソースコード

を編集するうちにFuturesSessionフォームにrequets-futuresモジュールを使用すると述べたAPIを望んでいたが、私はそうのようなThirdPartyAPIをサブクラス化する必要がありますか?

これは最善の方法ではありません。上記の例のように、2回目に割り当てられたオブジェクトのみが必要であっても、_sessionは2回書き込まれます。

これは通常どのように処理されますか?それとも最善の方法ですか?

P.S:これはサードパーティのAPIにasync-requstsを実装するためのアイスバーグのヒントです。すべての応答が将来のオブジェクトになるためです。 (1つのステップで1つのステップ)

答えて

2

不要なオブジェクトを作成するので、パフォーマンスの観点からするのは最善の方法ではありません。しかし、基本オブジェクトを変更しないという制約がある場合、ウェイが可能なのはです。コンストラクタを呼び出さずに "ThirdPartyAPI"を使用することはできません。

大規模なOOライブラリでは、このようなことをするのは珍しいことではありません。PyQtは、多くの場合、複雑なクラスで別のコンポーネントを置き換えることでカスタマイズします。

+0

よろしくお願いします。ありがとう、私は正当な方法だったかどうかをチェックする誰かからそれを返す必要があった。 –

関連する問題