함수 주석
Function Annotations
- 파이썬 3부터 추가된 기능
- 코드에 Type Hint를 추가하는 방법으로, PEP 484로 정의되어 있음
개념
- 함수 주석(Function Annotations)은 함수의 매개변수와 반환값에 주석(Annotations)을 작성
- 함수에 명시적으로 주석을 작성하는 것이므로 실제 코드에 포함됨
- 단, 주석이므로 강제성은 없어 무시하고 사용할 수 있음
def func(a: str, b: float = 3.5) -> int:
return a + b
value = func(3)
print(value)
>>> 6.5
- 함수에 직접 주석을 작성할 수 있음
콜론(:)
을 사용해 매개변수에 할당되어야 하는 형식을 할당
->(화살표)
를 사용해 반환값에 할당되어야 하는 형식을 할당
- 매개변수에 기본값을 할당하는 경우,
변수: 주석 = 기본값
의 형태로 할당
- 매개변수에 할당된 형식을 맞추지 않아도 되며, 반환되는 값의 형식이 변환되어 반환되지 않음
1 def func(a):
2 def func(a: int = 10) -> int:
- 1번의 경우는 그냥 함수 생성
- 매개변수
a
가 어떤 자료형인지, 해당 함수가 뭘 반환하는지 알수 없음
- 2번의 경우 함수 주석 사용
a
란 변수가 int
형이고, 거기에 디폴트값은 10이라는 것을 알려줌
- 화살표 연산자를 사용하여, 해당 함수가
int
형 변수를 반환한다는 것도 알려줌
- 이렇게 타입을 지정해줄수 있는 것이 바로 주석이고, 이렇게 하면 코드 가독성과 타입 강요 그리고 IDE 보조를 받을 수 있게 됨
1 pi = 3.14159
2 pi: float = 3.14159
주석의 장점
- 함수 매개변수와 리턴값을 명시적으로 보여줌
- 파이썬은 언어의 특성 상 변수의 자료형을 명시적으로 지정하지 않기 때문에 사용성이 간편하고 유연한 대신 코드의 명확성은 떨어지는 단점이 있음
- 그래서 보통 함수를 작성할 때 아래와 같이 주석을 달아 개발자간 커뮤니케이션에 쓰이긴 하지만 이것 또한 지속적으로 작성하기 쉽지 않음
def func(arg1, arg2, arg3):
'''
:param arg1: str
:param arg2: str
:param arg3: list
:return: bool
'''
주석의 특징
- 가장 큰 특징은 바로 강제성이 없다는 것
- '주석'이라는 말그대로 주석일 뿐 해당 코드 자체에는 어떠한 영향도 미치지 않음