我在python-modules,Django,Zope或者Python中的任何地方寻找像java.net.URL这样的东西。 我希望它最好来自语义原因,因为有关程序的分析结果意味着URL在其中起着至关重要的作用。结果是这样的URL类在该程序中也将具有很大的实际用途。
当然我可以自己写这样的课程,但在开始重新发明轮子之前我想环顾四周。
我确实看过urllib2和urlparse。 urlparse
基本上具有我需要的功能,但它不会将其封装到类java.net.URL
之类的类中。关于我对我的程序的分析,它是颠倒的。
我还在类urlparse
和SplitResult
中查看了ParseResult
的源代码。它们具有一些基本功能,可用于子类化。但我必须将其余的urlparse函数重写为子类方法。
我也找到了mxURL - Flexible URL Datatype for Python。它非常接近我真正想要的。只是这对我的目的来说似乎太过分了。
有人可以建议另一种选择吗?我应该继续重新发明轮子吗?
我的解决方案:
要获得我的URL课程,我基本上做了两件事:
urlparse.ResultMixin
。 urlparse.urlparse()
并将结果转换为的函数
URL实例的参数。答案 0 :(得分:13)
urlparse
将封装到一个名为ParseResult
的类中,因此可以将其视为工厂函数。直接来自Python文档:
>>> urlparse('http://www.cwi.nl:80/%7Eguido/Python.html')
ParseResult(scheme='http', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
params='', query='', fragment='')
如果您迫切需要一个名为URL
的类来封装您的网址,请使用别名(URL = urlparse.ParseResult
)或创建适配器。
答案 1 :(得分:3)
您可能需要考虑查看furl,因为它可能是您需求的答案。
答案 2 :(得分:0)