[Python] annotation

Updated:

Python annotation

이런 ꡬ쑰가 μžˆλ‹€κ³ λ§Œ μ•Œκ³  μžˆμ—ˆλŠ”λ° λ¦Ώμ½”λ“œ 문제λ₯Ό ν’€λ©΄μ„œ μ œλŒ€λ‘œ κ³΅λΆ€ν–ˆλ‹€.

annotation 은 우리말둜 λ°”κΎΈλ©΄ 주석이닀.

νŒŒμ΄μ¬μ€ ν•¨μˆ˜λ₯Ό μ •μ˜ ν•  λ•Œ μžλ£Œν˜• 선언이 ν•„μš” μ—†κΈ° λ•Œλ¬Έμ— λ°”λ‘œ μ–΄λ–€ μžλ£Œν˜•μ΄ ν•„μš”ν•œμ§€ μ•ŒκΈ°λŠ” μ–΄λ ΅λ‹€.

λ•Œλ¬Έμ— 말 κ·ΈλŒ€λ‘œ ν•¨μˆ˜λ₯Ό μ •μ˜ ν•  λ•Œ 주석을 달 수 μžˆλ‹€.


ν•¨μˆ˜μ— annotation 문법을 μ‚¬μš©ν•˜λ €λ©΄ νŒŒλΌλ―Έν„°: 주석 으둜 μ‚¬μš©ν•˜λ©΄ λœλ‹€.

def add(num1: int, num2: int) -> int:
  return num1 + num2

num1, num2 λŠ” int κ°€ μ™€μ•Όν•˜κ³  -> 의 μ˜λ―ΈλŠ” return 값이 int λΌλŠ” μ˜λ―Έμ΄λ‹€.

ν•¨μˆ˜ 뿐 만 μ•„λ‹ˆλΌ λ³€μˆ˜μ—μ„œλ„ μ‚¬μš©μ΄ κ°€λŠ₯ν•˜λ‹€.

id: int = 1

ν•˜μ§€λ§Œ 주석일 뿐 이닀. κ°•μ œλŠ” μ „ν˜€ μ—†λ‹€.

def add(num1: int, num2: int) -> int:
  return num1 + num2

print(add('Hello', ' World'))

num1, num2 에 λ¬Έμžμ—΄μ„ λ„£μ–΄μ£Όλ©΄ Hello World 둜 λ¬Έμ œμ—†μ΄ 좜λ ₯이 λœλ‹€.


List, Tuple, Set, Dict λ₯Ό annotation ν•˜λ €λŠ” 경우 typing λͺ¨λ“ˆμ„ μ‚¬μš©ν•΄μ•Ό ν•œλ‹€κ³  ν•œλ‹€.

from typing import List


def sum(nums: List) -> List[int]:
  return nums

μ•„λ§ˆ List[int] μ—μ„œ κ΄„ν˜Έ μ•ˆμ˜ μžλ£Œν˜•μ€ List κ°€ ν¬ν•¨ν•˜κ³  μžˆλŠ” λ°μ΄ν„°λ“€μ˜ μžλ£Œν˜•μ΄ μ•„λ‹κΉŒ μ‹Άλ‹€..


μ•žμ„œ 주석일 뿐 κ°•μ œλŠ” μ „ν˜€ μ—†λ‹€κ³  ν•˜μ˜€λ‹€. ν•˜μ§€λ§Œ Mypy λ₯Ό μ‚¬μš©ν•˜μ—¬ κ°•μ œ ν•  수 μžˆλ‹€.

def add(num1: int, num2: int) -> int:
  return num1 + num2

print(add('Hello', ' World'))

ν•΄λ‹Ή μ½”λ“œλ₯Ό mypy 둜 μ‹€ν–‰μ‹œμΌœλ³΄λ©΄ λ‹€μŒκ³Ό 같이 였λ₯˜κ°€ λ°œμƒν•œλ‹€.

annotation 은 int 둜 ν–ˆλŠ”λ° λ¬Έμžμ—΄μ„ λŒ€μž…ν–ˆκΈ° λ•Œλ¬Έμ΄λ‹€.

λ³€μˆ˜μ˜ μžλ£Œν˜•μ΄λ‚˜ ν•¨μˆ˜ λ°˜ν™˜κ°’μ˜ μžλ£Œν˜•μ„ ν‘œμ‹œν•˜κ³  μ‹Άλ‹€λ©΄ annotation 을 μ‚¬μš©ν•˜κ³ 

Mypy λ₯Ό 이용 ν•΄ 였λ₯˜λ₯Ό 찾아내도둝 ν•˜μž.


Categories:

Updated:

Leave a comment