https://mail.python.org/pipermail/python-ideas/2014-September/029310.html정규 수업
에 namedtuple의 __str__ 및 __repr__ 동작을 가져와 나는 항상 namedtuple
내장 __str__
을 생각 __repr__
은 매우 단정했고, 난 쉽게 내 모든 클래스에 적용하는 간단한 방법을 찾고 있어요.
>>> from collections import namedtuple
>>> A = namedtuple("A", ["foo"])
>>> print(A(foo=1))
A(foo=1)
>>> str(A(foo=1))
'A(foo=1)'
>>> repr(A(foo=1))
'A(foo=1)'
편집 :
나는 처음 __repr__
을, 동적이지, 긴 하드 코딩의 무리와 함께 시작했다. 나는 그것을 좋아하지 않는다. namedtuple
가 멋지게 자동으로 실행됩니다.
def __repr__(self):
return 'className(attrA={attrA}, attrB={attrB})'.format(**vars(self)))
당신은 namedtuple 구현하는 방법을 볼 수 있습니다 https://hg.python.org/cpython/file/2.7/Lib/ collections.py # l247 – jonrsharpe