기본 형식 주석
변수, 함수 매개변수 및 반환 형식에 주석을 추가합니다.
기본 형식 주석은(는) CoddyKit의 무료 Python Academy 강의입니다. 이것은 4개 중 1번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Python Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Python Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
타입 주석이란 무엇입니까?
타입 주석은 변수, 매개변수 및 반환값에 예상되는 타입을 선언하는 힌트입니다. 런타임에 적용되지는 않으며, mypy와 같은 타입 검사기가 읽습니다.
def greet(name: str) -> str:
return f"Hello, {name}"
result: str = greet("Alice")
print(result)변수 타입 주석
콜론 뒤에 타입을 적어 모듈 수준, 클래스 수준 또는 지역 변수에 주석을 지정합니다.
count: int = 0
pi: float = 3.14159
name: str = "Python"
flag: bool = True
# Annotation without assignment (declaration only)
future_value: int함수 매개변수 주석
함수 서명의 각 매개변수에 주석을 지정합니다. 반환 타입에는 -> type을 사용합니다.
def add(a: int, b: int) -> int:
return a + b
def repeat(text: str, times: int = 1) -> str:
return text * times
def no_return() -> None:
print("side effect only")내장 컬렉션 타입 (파이썬 3.9+)
파이썬 3.9부터는 소문자로 된 내장 타입을 제네릭으로 직접 사용할 수 있습니다: list[int], dict[str, int], tuple[int, ...].
def total(numbers: list[int]) -> int:
return sum(numbers)
def config() -> dict[str, str]:
return {"host": "localhost", "port": "8080"}
def coords() -> tuple[float, float]:
return (1.0, 2.0)선택 타입과 유니언 타입
X | None(파이썬 3.10 이상) 또는 Optional[X]은 값이 X이거나 None일 수 있다는 뜻입니다. X | Y는 X 또는 Y를 의미합니다.
from typing import Optional
def find(items: list[int], target: int) -> int | None:
return next((x for x in items if x == target), None)
# Older style:
# def find(...) -> Optional[int]:유니언 타입
int | str(파이썬 3.10 이상) 또는 Union[int, str]은 여러 타입 중 하나일 수 있는 값에 주석을 지정합니다.
from typing import Union
def process(value: int | str) -> str:
return str(value)
# Older style:
# def process(value: Union[int, str]) -> str:타입 별칭
재사용할 수 있는 별칭을 만들려면 타입 표현식을 이름에 할당합니다. 이렇게 하면 가독성이 향상됩니다.
from typing import TypeAlias
Vector: TypeAlias = list[float]
Matrix: TypeAlias = list[Vector]
def dot(a: Vector, b: Vector) -> float:
return sum(x * y for x, y in zip(a, b))호출 가능 객체의 타입 주석
인수로 전달되는 함수에 주석을 지정하려면 Callable[[arg_types], return_type]을 사용합니다.
from typing import Callable
def apply(func: Callable[[int, int], int], x: int, y: int) -> int:
return func(x, y)
result = apply(lambda a, b: a + b, 3, 4)
print(result) # 7*args와 **kwargs에 주석 지정하기
*args에는 요소 타입을 지정하고 튜플 타입은 지정하지 않습니다. **kwargs에는 값 타입을 지정합니다.
def log(*messages: str, level: str = "INFO") -> None:
for msg in messages:
print(f"[{level}] {msg}")
def configure(**options: int) -> None:
for key, val in options.items():
print(f"{key}: {val}")from __future__ import annotations
주석의 평가 지연을 활성화하려면 파일 맨 위에 이 가져오기 문을 추가합니다. 그러면 따옴표 없이 전방 참조를 사용할 수 있습니다.
from __future__ import annotations
class Node:
def __init__(self, value: int, next: Node | None = None):
self.value = value
self.next = next # forward ref to Node works hereTYPE_CHECKING 가드
순환 가져오기나 무거운 가져오기를 피하려면 런타임이 아니라 타입 검사 중에만 타입을 가져옵니다.
from __future__ import annotations
from typing import TYPE_CHECKING
if TYPE_CHECKING:
from mymodule import HeavyClass
def process(obj: HeavyClass) -> None:
... # HeavyClass not imported at runtime빠른 확인
함수가 아무것도 반환하지 않는다는 것을 나타내는 주석 구문은 무엇입니까?
복습
변수에는 name: Type, 매개변수에는 param: Type, 반환값에는 -> Type을 사용해 주석을 지정합니다. 컬렉션에는 list[T]와 dict[K,V](파이썬 3.9 이상)를 사용하고, 선택적 값에는 X | None(파이썬 3.10 이상)을 사용합니다. 전방 참조에는 from __future__ import annotations을 사용합니다.
자주 묻는 질문
“기본 형식 주석” 강의는 무료인가요?
네 — “기본 형식 주석” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Python Academy 강의 전체를 잠금 해제할 수 있습니다. Python Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“기본 형식 주석”에서 뭘 배우나요?
변수, 함수 매개변수 및 반환 형식에 주석을 추가합니다. 브라우저에서 직접 실행하는 실습 코드로 Python Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Python Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Python Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 1번째 강의입니다.
“기본 형식 주석” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Python Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Python Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.