SeouliteLab

파이썬의 Optional 타입: 값이 존재하지 않을 수 있는 유연한 변수 처리 본문

프로그래밍

파이썬의 Optional 타입: 값이 존재하지 않을 수 있는 유연한 변수 처리

Seoulite Lab 2024. 4. 1. 16:35

파이썬의 Optional 타입은 값이 존재하지 않을 수 있는 변수를 다룰 때 사용되며, 주로 함수의 매개변수나 반환값으로 활용됩니다. 이번 글에서는 Optional 타입의 사용 예시와 그 중요성에 대해 알아보겠습니다.

예제 1: Optional을 사용한 함수 매개변수

from typing import Optional

def greet(name: Optional[str] = None):
    if name:
        print(f"Hello, {name}!")
    else:
        print("Hello, everyone!")

greet("Alice")
# 출력 결과: Hello, Alice!

greet()
# 출력 결과: Hello, everyone!

위 예제에서는 Optional[str]을 사용하여 함수 greet의 매개변수 name이 선택적임을 나타냅니다. 따라서 이 매개변수에 값을 전달할 수도 있고 전달하지 않을 수도 있습니다.

예제 2: Optional을 사용한 반환값

from typing import Optional

def find_element(lst: list, target: int) -> Optional[int]:
    if target in lst:
        return lst.index(target)
    else:
        return None

result = find_element([1, 2, 3, 4, 5], 3)
print("Index:", result)
# 출력 결과: Index: 2

result_not_found = find_element([1, 2, 3, 4, 5], 6)
print("Index:", result_not_found)
# 출력 결과: Index: None

이 예제에서는 함수 find_element가 리스트에서 특정 요소의 인덱스를 찾아 반환합니다. 하지만 요소가 리스트에 없을 경우 None을 반환하도록 Optional을 사용합니다.

예제 3: Optional을 사용한 클래스 멤버 변수

from typing import Optional

class Person:
    def __init__(self, name: Optional[str] = None):
        self.name = name

    def introduce(self):
        if self.name:
            print(f"My name is {self.name}.")
        else:
            print("My name is not provided.")

person_with_name = Person("Alice")
person_with_name.introduce()
# 출력 결과: My name is Alice.

person_without_name = Person()
person_without_name.introduce()
# 출력 결과: My name is not provided.

위 예제에서는 클래스 Person의 생성자에서 Optional[str]을 사용하여 이름이 선택적임을 나타냅니다. 따라서 이름이 제공되지 않을 수도 있습니다.