【发布时间】:2011-09-04 10:41:52
【问题描述】:
我正在 python-modules、Django、Zope 或 Python 中的任何地方寻找类似 @987654321@ 的东西。 我希望它最好从语义原因,因为相关程序的分析结果表明URL在其中起着至关重要的作用。结果是这样的 URL 类在该程序中也将有很大的实际用途。
我当然可以自己编写这样的课程,但我想在开始重新发明轮子之前先看看周围。
我确实看过urllib2 和urlparse。 urlparse 基本上具有我需要的功能,但它没有将其封装到像java.net.URL 这样的类中。关于我对程序的分析,它是颠倒的。
我还在SplitResult 和ParseResult 类中查看了urlparse 的源代码。它们具有一些基本功能,可用于子类化。但是我必须将其余的 urlparse 函数重写为子类方法。
我还发现了mxURL - Flexible URL Datatype for Python。它非常接近我真正想要的。只是这对我的目的来说似乎有点过头了。
任何人都可以提出其他选择吗?我应该继续重新发明轮子吗?
我的解决方案:
为了获得我的 URL 类,我基本上做了两件事:
- 从
urlparse.ResultMixin继承。 - 定义只调用
urlparse.urlparse()并将结果转换为的函数 URL 实例的参数。
【问题讨论】:
-
你为什么需要一个类?
-
@Cat Plus Plus:为 URL 设置一个类会非常方便。事实上非常方便,Python 标准库中包含一个。
-
@larsmans:实际上,它只不过是一个命名元组。
-
@Cat Plus Plus:您对 URL 类还有什么期望? ;)
-
我认为拥有一个 URL 类是个好主意。 URL 是一个值对象,与任何其他对象非常相似。也许它比 Python 更像 Java 哲学,但是,例如,从字符串构造一个然后获取方案、主机、路径等是一个非常强大的案例。看起来
urlparse可以很好地完成这项工作,但不会破坏 Java 类的情况。