dynamic
) νλ‘κ·Έλλ° μΈμ΄μΈ νμ΄μ¬μμλ μΈν°ν리ν°(interpreter
)κ° μ½λλ₯Ό μ€ννλ©΄μ νμ
(type
)μ μΆλ‘ νμ¬ μ²΄ν¬type
)μ κ³ μ λμ΄ μμ§ μκΈ° λλ¬Έμ κ°λ°μκ° μνλ©΄ μμ λ‘κ² λ°κΏ μ μμTip!
- νλ‘κ·Έλ¨ μ€ν λμ€μ λ³μμ νμ μ΄ λμ μΌλ‘ λ³κ²½ λλ νμ΄μ¬μ λμ (
dynamic
) νλ‘κ·Έλλ° μΈμ΄- νλ² λ³μμ νμ μ μ§μ νλ©΄ μ§μ ν νμ μΈμ λ€λ₯Έ νμ μ μ¬μ©ν μ μλ μλ°λ μ μ (
static
) νλ‘κ·Έλλ° μΈμ΄
type hinting
)μ΄λΌλ κ°λ° νλ‘μΈμ€λ₯Ό λμ
νμ¬ μ¬μ©νλ κ²½μ°κ° λ§μtype hinting
)μ λ§ κ·Έλλ‘ νμ΄μ¬ μ½λλ₯Ό μμ±ν λ νμ
μ λν λ©ν μ 보λ₯Ό μ 곡νλ κ²comments
)μ μ΄μ©νμ΄μΌ νμμΌλ μ΄ λ°©λ²μ μ½λλ₯Ό μ½λ κ°λ°μμκ²λ μ½κ°μ λμμ΄ λ μ§λ λͺ¨λ₯΄κ² μΌλ μ ν΄μ§ νμ€μ΄ μμκ³ μΌλ° μ£Όμκ³Ό ꡬλΆμ΄ μ΄λ €μ μannotation
)μ΄λΌλ μλ‘μ΄ λ°©λ²μΌλ‘ νμ΄μ¬ μ½λμ νμ
νμλ₯Ό νμ€νIDE
)λ λ¦°ν°(linter
)μμλ ν΄μν μ μλλ‘ κ³ μλμμΌλ©° μ½λ μλ μμ±μ΄λ μ μ νμ
체νΉμλ νμ©λκ³ μμtype hinting
)μ μ°λ¦¬κ° μμ±ν μ½λλ₯Ό λ€λ₯Έ κ°λ°μκ° μ½κΈ° μμνκ² ν΄μ£Όκ³ , μ°λ¦¬κ° μ¬μ©νλ κ°λ° λκ΅¬κ° νμ©ν μ μλλ‘ λμμ€ λΏ:
)μ λΆμ΄κ³ νμ
μ λͺ
μν΄μ£Όλ©΄ λ¨name: str = "John Doe"
age: int = 25
emails: list: ["john1@doe.com", "john2@doe.com"]
address: dict = {
"street": "54560 Daugherty Brooks Suite 581",
"city": "Stokesmouth",
"state": "NM",
"zip": "80556"
}
def ν¨μλͺ
(<νμ μΈμ>: <μΈμ νμ
>, <μ ν μΈμ>: <μΈμ νμ
> = <κΈ°λ³Έκ°>) -> <λ°ν νμ
>:
...
->
)λ₯Ό μ¬μ©def stringify(num: int) -> str:
return str(num)
def plus(num1: int, num2: float = 3.5) -> float:
return num1 + num2
def greet(name: str) -> None:
return "Hi! " + str
def repeat(message: str, times: int = 2) -> list:
return [message] * times
:
)κ³Ό νμ΄ν(->
)λ₯Ό μ¬μ©ν λλ νμ΄μ¬μ κ΄νμ λ°λΌ μ½λ‘ μ λ€μλ§ ν μΉΈμ λ°μ°κ³ , νμ΄νλ μλ€λ‘ ν μΉΈμ λμTip! νμ΄μ¬: νμ μ΄λ Έν μ΄μ
- μ΄λ Έν μ΄μ νμ μΌλ‘ μ μλ
int
, λ¬Έμμ΄μstr
, 리μ€νΈλlist
, ννμtuple
, λμ λ리λdict
, μ§ν©μset
, λΆμbool
μ μ¬μ©
typing
λͺ¨λμ μ¬μ©ν μ μμfrom typing import List, Set, Dict, Tuple
nums: List[int] = [1]
unique_nums: Set[int] = {6, 7}
vision: Dict[str, float] = {'left': 1.0, 'right': 0.9}
john: Tuple[int, str, List[float]] = (25, "John Doe", [1.0, 0.9])
class User:
...
def find_user(id: str) -> User:
...
def create_user(user: User) -> User:
...
__annotations__
λ΄μ₯ μ¬μ κ°μ²΄λ₯Ό μ¬μ©νλ©΄ λ¨>>> __annotations__
{'no': <class 'int'>, 'name': <class 'str'>, 'age': <class 'int'>, 'address': <class 'dict'>}
>>> repeat.__annotations__
{'message': <class 'str'>, 'times': <class 'int'>, 'return': <class 'list'>}