본문 바로가기
BASIC

named tuple

by 자동매매 2023. 11. 17.

named tuple 

 
 

collections 모듈

namedtuple은 자료형 이름과 요소의 이름을 지정하면 클래스를 생성해줍니다.

 

자료형 이름 - 문자열

요소의 이름 - 문자열 리스트

 

클래스 = collections.namedtuple( '자료형이름' ,  [ '요소이름1' ,  '요소이름2' ] )

 

namedtuple로 생성한 클래스는 값을 넣어서 인스턴스를 만들 수 있으며 

인스턴스.요소이름 또는 인스턴스[인덱스] 형식으로 요소에 접근할 수 있습니다.

 

 

인스턴스 = 클래스(값1, 값2)

인스턴스 = 클래스(요소이름1=값1, 요소이름2=값2)

 

인스턴스.요소이름1

인스턴스[인덱스]

 

다음은 namedtuple을 사용하여 점을 표현한 뒤 두 점의 거리를 구합니다.

two_point_namedtuple.py

import math
import collections
 
Point2D = collections.namedtuple('Point2D', ['x', 'y'])    # namedtuple로 점 표현
 
p1 = Point2D(x=30, y=20)    # 점1
p2 = Point2D(x=60, y=50)    # 점2
 
a = p1.x - p2.x    # 선 a의 길이
b = p1.y - p2.y    # 선 b의 길이
 
c = math.sqrt((a * a) + (b * b))
print(c)    # 42.42640687119285

 

 

사각형 넓이구하기

import collections

Rectangle = collections.namedtuple('Rectangle',['x1','x2','y1','y2'])

rect = Rectangle(x1=20, y1=20, x2=40, y2=30)

width = abs(rect.x2 - rect.x1)
height = abs(rect.y2 - rect.y1)
area = width * height
print(area)

'BASIC' 카테고리의 다른 글

Exception  (0) 2023.11.19
덕타이핑 / 믹스인  (1) 2023.11.19
두점 사이 거리구하기  (0) 2023.11.17
self  (0) 2023.11.17
추상 클래스  (0) 2023.11.17

댓글