8

次のコードを使用します。

>>> import urlparse
>>> parts = urlparse.urlparse('http://docs.python.org/library/')
>>> parts = parts._replace(path='/3.0'+parts.path)

parts._replace worksただし、これは下線付きのメソッドであるため、内部で使用されるべきではありません。代替手段はありますか?私はしたくない:

>>> parts = parts[:2] + ('/3.0'+parts.path,) + parts[3:]

これにより、名前付きタプルではなく通常のタプルになり、次のようにするためです。

>>> parts = namedtuple(scheme=parts.scheme, netloc=parts.netloc, etc etc)

ちょっとばかです。:)

アイデア?

4

1 に答える 1

21

namedtuple最初のアンダースコアで開始する方法は、名前の衝突を防ぐためだけです。これらは、内部使用のみを目的としていると見なされるべきではありません

フィールド名との競合を避けるために、メソッド名と属性名はアンダースコアで始まります。

于 2010-02-06T12:43:21.520 に答える