반응형
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으로 하겠다라는 주석이 있어도 주석의 역할만 할뿐 프로그램 수행에는 관여하지 않는다. 그러니 주석을 작성할 때는 헷갈리지 않도록 작성하는 것이 중요하겠다.
반응형
'Python' 카테고리의 다른 글
[python] 파이썬 버전 확인하기 (0) | 2022.09.29 |
---|---|
[python] 재귀함수를 사용한 list 평탄화 (flatten) (0) | 2022.05.08 |
[python] 리스트 문자열 중 길이가 가장 짧은 문자열 찾기 (1) | 2022.04.18 |
[python] 파이썬에서 전역 변수 사용하기 - global (0) | 2022.04.08 |
bs4.FeatureNotFound: Couldn't find a tree builder with the features you requested: lxml. 문제 해결 방법 (0) | 2022.02.27 |