我在python模块、Django、Zope或python中的任何地方寻找类似java.net.URL的东西。 我更希望从语义原因,因为对相关程序的分析结果表明,URL在其中起着至关重要的作用。其结果是这样的URL类在该程序中也将有很大的实际使用价值。在
当然,我可以自己写这样的课,但在我开始改头换面之前,我想看看周围的情况。在
我看了urllib2和{a3}。urlparse
基本上具有我需要的功能,但它没有将其封装到java.net.URL
这样的类中。关于我对程序的分析,它是颠倒的。在
我还研究了urlparse
在SplitResult
和{
我还发现了mxURL - Flexible URL Datatype for Python。这和我真正想要的非常接近。只是对我来说这似乎是一种过度的杀戮。在
有人能提出另一个选择吗?我应该着手重新发明轮子吗?在
我的解决方案:
为了得到我的URL类,我基本上做了两件事:
urlparse.ResultMixin
继承。在urlparse.urlparse()
并将结果转换为
URL实例的参数。在
您可能需要考虑查看一下furl,因为它可能是您需求的答案。在
截至2018年,我们拥有:
目前只有furl得到了维护,但它的主要缺点是它是可变的,这当然不鼓励最佳实践。(有一个很好的现代引用-
pathlib
,它由不可变的类组成。)总的来说,有一种轻松的OO方法来解析和构造url是很受欢迎的。在
urlparse
将url封装到一个名为ParseResult
的类中,因此可以将其视为这些类的工厂函数。直接来自Python文档:如果您迫切需要一个名为
URL
的类来封装URL,请使用别名(URL = urlparse.ParseResult
)或创建一个适配器。在相关问题 更多 >
编程相关推荐