Я ищу что-то вроде java.net.URL в модулях Python, Django, Zope или где-либо еще в Python.
Я хочу это предпочтительно из семантики причина , потому что результат анализа рассматриваемой программы подразумевает, что URL играет в этом существенную роль. Следствием этого является то, что такой класс URL также будет иметь большое практическое применение в этой программе.
Конечно, я мог бы написать такой класс самостоятельно, но я бы хотел осмотреться, прежде чем начать изобретать велосипед .
Я посмотрел на urllib2 и urlparse . urlparse
в основном обладает необходимой мне функциональностью, но он не инкапсулирует ее в класс, подобный java.net.URL
. Что касается анализа моей программы, она работает в обратном порядке.
Я также изучил исходный код urlparse
для классов SplitResult
и ParseResult
. У них есть некоторые основные функции, и они могут быть использованы для создания подклассов. Но мне придется переписать остальные функции urlparse как методы подкласса.
Я также нашел mxURL - Гибкий тип данных URL для Python . Это очень близко к тому, что я действительно хочу. Только это кажется излишним для моей цели.
Может кто-нибудь предложить другой вариант? Должен ли я продолжить изобретать велосипед?
Мое решение:
Чтобы получить класс URL, я сделал две вещи:
- Наследовать от
urlparse.ResultMixin
.
- Определить функцию, которая вызывает только
urlparse.urlparse()
и преобразует результаты в
параметры экземпляра URL.