Bu kodu atın:Adlandırılmış dosyalara _replace'a daha iyi bir alternatif nedir?
>>> import urlparse
>>> parts = urlparse.urlparse('http://docs.python.org/library/')
>>> parts = parts._replace(path='/3.0'+parts.path)
parts._replace works
ancak bir çizili yöntemdir olarak, iç olması gerekiyordu ve alışık değildir. Alternatif var mı? Yapmak istemiyorum:
>>> parts = parts[:2] + ('/3.0'+parts.path,) + parts[3:]
ki bu, onun sıradan bir kayıt düzeni ve bir namedtuple ve yapıyor yapar Çünkü:
>>> parts = namedtuple(scheme=parts.scheme, netloc=parts.netloc, etc etc)
tür aptalca. :)
Fikirler?
Ahaaaa ......... –
AFAIK bir PEP (à la 'class_') sadece için namedtuple', kimse bu * son eklemeli * Bir alt çizgi daha uygun olur iddia nerede' için orada asla Bu tür yanlış anlamaları önlemek. – tzot
Yeniden birleştirme, rename = True seçeneği ile iyi çalışmadığı halde daha iyi bir seçim olabilir. FWIW, isim verilen kod, yayınlanmadan önce kapsamlı bir şekilde gözden geçirildi ve tartışıldı. Tarifin oluşturulması bir topluluk çabasıydı (bkz. Http://code.activestate.com/recipes/500261-named-tuples/) ve daha sonra revizyon ve python-dev üzerine inceleme yapıldı. –