[ Python 3 ] 파이썬에서 : , -> 의미는 무엇일까? (주석)
' : ' ,' -> ' 어떤 의미일까요?
다른 사람의 코드에서 :, -> 같은 기호들을 자주 볼 수 있습니다.
: 와 -> 는 둘다 type을 설명해주는 주석을 의미합니다.
' : ' 변수 타입 주석
어떤 변수의 type을 설명해 주는 역할을 합니다.
' -> ' 함수 타입 주석
함수의 return이 어떤 type을 가지게 될지 설명해주는 역할을 합니다.
예시를 통해 보면 이해가 쉬운데요.
예시
def func(a: int, b: float) -> float:
return a + b
a = 3
b = 4
print(func(a,b))
처음 함수 func을 만든 사람의 의도는 다음과 같습니다.
함수 func의 원래 의도
어떤 int와 float를 더해서 float수를 리턴할 거야.
: 의미
매개변수 a 는 int 로 들어오는 게 좋아.
매개변수 b 는 float로 들어오는 게 좋아.
-> 의미
float를 리턴할 거야
강제성이 없다
a = 3, b = 4 로 둘다 int type으로 설정했어.
func의 매개변수에 둘다 int type을 넣어도 문제가 없네.
return이 int 인 7이 되더라도 문제가 없네.
강제성은 없어.
그러나 함수 본래의 의미와 다르게 사용되었습니다.
왜 필요할까요?
파이썬이 동적 프로그래밍 언어입니다.
파이썬 프로그램을 실행 시키면, 인터프리터(interpreter)가 코드를 실행하면서 타입(type)을 추론하여 체크합니다.
고정되어 있지 않기 때문에, 원하는 대로 변경이 가능하죠.
명시적인 타입 정의가 필요없습니다. 간단한 코딩이 가능해지죠. 좋습니다.
그러나 코드가 복잡해지고 여러사람이 함께하는 프로젝트에서는 문제가 발생할 수 있습니다.
모든 사람이 모든 코드를 전부 이해해야 에러없는 코딩이 가능합니다.
어떤 변수나 함수의 결과가 정수인지, 문자열인지, 리스트인지, 튜플인지 알기가 힘들겠지요.
즉, 다른사람이 코드를 봤을때 명시적으로 이해를 돕기 위해 사용됩니다.
하지만 말그대로 주석일 뿐 강제성은 없습니다.
그래서 설명된 대로 type이 들어오지 않더라도 그자체로 에러를 만들지는 않습니다.
이러한 type 주석을 잘 사용하면 실행하기 전에
python에서도 type checking을 할 수 있는 기회가 생깁니다.
'컴퓨터 언어 > Python' 카테고리의 다른 글
[ Python 3 ] 딕셔너리(dictionary) 주의할 점 (key type, 인덱싱 가능?, 중복될 경우엔?) (0) | 2022.08.13 |
---|---|
[ Python 3 ] 딕셔너리(dictionary) 생성 ({}, dict ()) (0) | 2022.08.13 |
[ Python ] input() 사용하기 (0) | 2022.06.13 |
[ Python ] print 함수 사용하기 - 특수문자출력 (0) | 2022.06.09 |
[ Python ] print 함수 사용하기 - 기초 (문자열, sep, end) (0) | 2022.06.09 |