• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

_fields() 관련 질문있어요!

20.09.03 20:02 작성 조회수 130

0

위에서

Point4  = namedtuple('Point', 'x y x class', rename=True)

p4 = Point4(10, 20, 30, 40)

print(p4) = (x=10, y=20, _2=30, _3=40)

으로 출력됐어요.

x, y는 변수로, 중복된 x와 class는 난수를 변수로 지정한다고 설명해주셨고요.

_fields()는 필드네임을 확인하는 메소드인데, 

p4._fields()는 (x, y)만 출력됩니다.

확실한 변수가 x, y밖에 없어서 x, y만 출력되고, print문으로 써야할 때는 어쩔 수 없으니 난수가 변수로 지정되는 건가요?

print문에서는 변수가 4개 나왔는데, _fileds()로 확인할 때는 2개밖에 안나오는 이유를 확실하게 알고 싶습니다.

답변 2

·

답변을 작성해보세요.

0

MIKE.aeon님의 프로필

MIKE.aeon

2021.05.21

중간에 p4를 재할당해서 그렇습니다.

그 부분 주석처리하면 정상적으로 나옵니다.

# 네임드 튜플 메소드
temp = [5238] 
# _make() : 새로운 객체 생성
p4 = Point1._make(temp)
print('_make(): 새로운 객체 생성')
print(p4)
print()

0

안녕하세요.

튜플은 중복을 허용하지 않습니다.

현재 사용되고 있는 필드 네임만 출력됩니다.

위 부분에서 확실하게 서로 다른 변수를 4개를 선언하고 rename = False 후 출력해보세요.

감사합니다.