이름이 지명 된 _replace에 대한 더 좋은 대안은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/2213102

  •  19-09-2019
  •  | 
  •  

문제

이 코드를 가져 가십시오 :

>>> 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)

좀 멍청 해요. :)

아이디어?

도움이 되었습니까?

해결책

이유의 이유 namedtuple 초기 밑줄로 시작하는 것은 이름 충돌을 방지하기위한 것입니다. 그들 내부 사용 만 고려해서는 안됩니다.:

필드 이름과의 충돌을 방지하기 위해 메소드 및 속성 이름은 밑줄로 시작합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top