1

opt使用 pycurl 时,查看已设置哪些选项 ( ) 的最佳方法是什么?

例如,我调用了一个返回 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()

在此基础上,你甚至可以使 pycurl 接口更好,通过添加诸如__enter____exit__(for with 语句支持)之类的方法,支持pycurl.URL构造函数中的选项等。

于 2013-06-12T11:18:36.643 回答