티스토리 뷰

파이썬 3.5부터 타입 힌트를 지원하기 위해서 어노테이션(annotation)이 추가되었다.

어노테이션을 이용해서 코드를 작성하던 중, 클래스의 메서드의 리턴 타입을 해당 클래스로 어노테이션으로 작성하니 에러가 났다.

 

 

 

# 예제 코드

다음 코드에서 Dollar의 times 메서드는 Dollar를 리턴한다. 

class Dollar(Money):
    def __init__(self, amount: int):
        self._amount: int = amount

    def times(self, multiplier: int) -> Dollar:
        return Dollar(self._amount * multiplier)

하지만 vscode에서는 Dollar가 정의되어 있지 않았다면서 에러가 발생한다.

 

 

 

# 해결 방법

열심히 구글링해보니 해당 문제는 파이썬 3.7부터 __future__의 annotations를 import 해서 해결할 수 있다고 한다.

from __future__ import annotations


class Dollar(Money):
    def __init__(self, amount: int):
        self._amount: int = amount

    def times(self, multiplier: int) -> Dollar:
        return Dollar(self._amount * multiplier)

'Python > 클린코드' 카테고리의 다른 글

파이썬 타입 어노테이션 사용 방법  (0) 2023.03.23
파이썬 타입 어노테이션  (1) 2023.03.21
댓글
공지사항