본문 바로가기

Python

[python] 함수 정의시 화살표(->)와 콜론(:) 의미

반응형

 

 

 

Leetcode를 풀던중 생소한 문법이 보였다. 

 

def push(self, x: int) -> None:
   self.queue.append(x)

 

python3 함수 정의시 -> (화살표)

python3에서는 함수 정의시 나타나는 화살표(->)는 함수 리턴 값의 주석 역할을 한다. 

말그대로 주석이기 때문에 있으면 좋지만 없다고 문제가 되지는 않는다.

위 함수에서는 None 타입을 리턴하는 함수다.

 

 

python3 함수 정의시 : (콜론)

비슷한 역할로 콜론이 있다. 위 코드를 보면 x: int 라는 표현이 있는데, 이는 매개변수 x 타입에 대한 주석이다. 즉 x 값은 int로 들어올 것이다. 라는 의미다. 마찬가지로 주석이기 때문에 없다고 문제가 되지는 않는다.

 

 

만약 주석대로 코드가 작성되지 않으면?

# None 타입으로 리턴한다고 주석달고 1 리턴
def test(x:int)->None:
    print("test")
    return 1
    
# int형을 매개변수로 준다하면서 문자열 전달
print(test("str"))


>> test
>> 1
-> 정상 수행

말 그래돌 콜론(:) 과 화살표(->)는 주석의 역할만 한다. 즉 프로그램의 실행을 강제하지는 않는다. 위 처럼 매개변수를 int형으로 받겠다, 또는 리턴을 None으로 하겠다라는 주석이 있어도 주석의 역할만 할뿐 프로그램 수행에는 관여하지 않는다. 그러니 주석을 작성할 때는 헷갈리지 않도록 작성하는 것이 중요하겠다.

반응형