1

pycurl を使用する場合、どのオプション ( opt) が設定されているかを確認する最良の方法は何ですか?

たとえば、pycurl オブジェクトを返すメソッドを呼び出します。私がやりたいことは、呼び出しを行って、どの opts ( pycurl.setopts) が設定されているかを確認することです。

4

1 に答える 1

1

そんな選択肢はないと思います。ただし、curl オブジェクトを次のような別のオブジェクトにカプセル化するのは簡単です。

class ExtendedCurl:
    invpycurl = {v:k for k, v in pycurl.__dict__.items()}
    def __init__(self):
        self._pycurl = pycurl.Curl()
        self._options = {}
    def setopt(self, opt, val):
        self._pycurl.setopt(self, opt, val)
        self._options[opt] = val
    def unsetopt(self, opt):
        self._pycurl.setopt(self, opt, val)
        del self._options[opt]
    def reset(self):
        self._pycurl.setopt(self, opt, val)
        self._options = dict()
    def getopts(self):
        for opt, val in self._options.iteritems():
            if opt in self.invpycurl.keys():
                print "{}: {}".formart(opt, val)
    def errstr(self):
        return self._pycurl.errstr()
    def perform(self):
        return self._pycurl.perform()
    def close(self):
        return self._pycurl.close()

__enter__それに基づいて、 and __exit__(with ステートメントのサポート用) のようなメソッドを追加pycurl.URLし、コンストラクターでオプションをサポートするなどして、pycurl インターフェイスをより適切にすることもできます。

于 2013-06-12T11:18:36.643 に答える