18.17.1 urlparse() および urlsplit() の結果

urlparse() および urlsplit() から得られる結果オブジェクト はそれぞれ tuple 型のサブクラスです。これらのクラスは それぞれの関数の説明の中で述べたような属性とともに、追加のメソッドを 一つ提供しています。

geturl( )
再結合された形で元の URL の文字列を返します。 この文字列は元の URL とは次のような点で異なるかもしれません。 スキームは常に小文字に正規化されます。 また空の要素は省略されます。 特に、空のパラメータ、クエリ、フラグメント識別子は取り除かれます。

このメソッドの結果は再び解析に回されたとしても不動点となります。

>>> import urlparse
>>> url = 'HTTP://www.Python.org/doc/#'

>>> r1 = urlparse.urlsplit(url)
>>> r1.geturl()
'http://www.Python.org/doc/'

>>> r2 = urlparse.urlsplit(r1.geturl())
>>> r2.geturl()
'http://www.Python.org/doc/'

バージョン 2.5 で 新たに追加 された仕様です。

以下のクラスが解析結果の実装を提供します。

class BaseResult
具体的な結果クラスたちの基底クラスです。このクラスがほとんどの属性の 定義を与えます。しかし geturl() メソッドは提供しません。この クラスは tuple から派生しています が、__init__()__new__() をオーバーライドしませ ん。

クラス ParseResult( scheme, netloc, path, params, query, fragment)
urlparse() の結果のための具体クラスで す。__new__() メソッドをオーバーライドして正しい個数の引数が 引き渡されたことを確認するようにしています。

クラス SplitResult( scheme, netloc, path, query, fragment)
urlsplit() の結果のための具体クラスで す。__new__() メソッドをオーバーライドして正しい個数の引数が 引き渡されたことを確認するようにしています。
ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。