2011年10月10日星期一

Fwd: 内省+变长参数的lambda表达式

最近看某同事写的python代码写的很漂亮,不禁羡慕。
恰好另一个同事买了本python教程,便拿来学学。
写了个练习。

From Evernote:

内省+变长参数的lambda表达式

class Client:
    def __init__(self, endpoint):
        self.endpoint = endpoint
    def wget(self, query):
        url = "http://%s/%s" % (self.endpoint, query)
        import urllib
        #todo wget and return response
        return url
    def __getattr__(self, attr):
        return lambda **kargs : self.wget(attr + "?" + "&".join(["%s=%s" % (k, kargs[k]) for k in kargs]))
   
   
if __name__ == '__main__':
    a = Client("baidu.com")
    print(a.q(keyword = "s"))
    print(a.q(keyword = "s", charset = "UTF-8"))



结果


没有评论: