본문 바로가기
프로그래밍 언어(Programming Languages)/파이썬(Python)

[Python] 파이썬 코드의 신세계를 여는 열쇠🔑 - 타입 힌팅 Type Hinting

by 데이터 벌집 2023. 11. 25.

안녕하세요, 파이썬 마법사 여러분! 오늘은 파이썬의 숨겨진 보석, 바로 타입 힌팅에 대해 이야기해보려고 해요. 타입 힌팅은 간단히 말해, 파이썬에게 "이 변수에는 이런 종류의 데이터가 들어갈 거야!"라고 알려주는 것입니다. 그렇다면 왜 이것이 중요할까요? 🤔 답은 간단해요! 여러분의 코드를 더 명확하게 만들어줄 뿐만 아니라, 잠재적인 버그를 예방하고, 개발 과정에서의 협업을 더욱 원활하게 해주기 때문이죠.🔨

 

타입힌팅


타입 힌팅의 기초

 

타입 힌팅은 파이썬 3.5 버전부터 도입되었고, PEP 484를 통해 정의되었습니다. 가장 간단한 형태는 다음과 같아요:

 

def greet(name: str) -> str:
    return f'Hello, {name}!'

 

여기서 name: str은 name이 문자열이라는 것을 알려주고, -> str은 이 함수가 문자열을 반환한다는 것을 나타냅니다.

 

복잡한 데이터 타입

 

그렇다면 리스트나 옵셔널 값 같은 복잡한 타입은 어떻게 표현할까요? 🤔 Python의 typing 모듈이 여러분을 도와줄 거예요!

 

from typing import List, Optional

def process_numbers(numbers: List[int], flag: Optional[bool] = None) -> None:
    for number in numbers:
        print(f'Number is {number}')
        if flag:
            print('Flag is true!')

 

 

List[int]는 정수의 리스트를, Optional[bool]은 bool 타입 또는 None이 될 수 있는 값을 나타냅니다.

 

클래스와 타입 힌팅

 

클래스에서도 타입 힌팅을 사용할 수 있어요. 각각의 인스턴스 변수와 메소드에 타입 힌트를 추가할 수 있죠.

 

class Player:
    def __init__(self, name: str, score: int) -> None:
        self.name: str = name
        self.score: int = score
    
    def update_score(self, new_score: int) -> None:
        self.score = new_score

 


타입 힌팅은 여러분의 파이썬 코드를 더욱 견고하고 이해하기 쉽게 만들어줄 멋진 도구입니다.🔧 정적 타입 검사를 통해 버그를 줄이고, 협업을 강화하며, 코드를 자기 문서화(self-documenting)하게 만들어준답니다. 이 모든 것이 바로 타입 힌팅의 마법이죠!🧙‍♂️

 

 

지금까지 타입 힌팅에 대해 알아봤는데요, 이 기능을 적극 활용해서 여러분의 파이썬 코드를 다음 단계로 끌어올려보세요. 코드가 마치 시를 쓰듯, 자연스럽고 아름다울 것입니다.📜✨ 그럼 여러분, 행복한 코딩 되세요! 🎉👩‍💻👨‍💻