함수 주석

GreenBean·2021년 12월 3일
0
post-thumbnail

함수 주석

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 
    '''

주석의 특징

  • 가장 큰 특징은 바로 강제성이 없다는 것
    • '주석'이라는 말그대로 주석일 뿐 해당 코드 자체에는 어떠한 영향도 미치지 않음
profile
🌱 Backend-Dev | hwaya2828@gmail.com

0개의 댓글