Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- Vue.js
- 프론트엔드
- 보험료
- 코딩
- jQuery
- 보험
- javascript
- 파이썬
- 특약
- 뇌출혈
- 웹개발
- 프로그래밍
- 수수료
- 심장질환
- PythonProgramming
- 변환
- 사망
- 납입
- 중도인출
- 리스트
- 교보생명
- 인출수수료
- 문자열
- 가입
- python
- 추가납입
- 급성심근경색증
- 자바스크립트
- Java
- 교보
Archives
- Today
- Total
SeouliteLab
파이썬의 Generic 타입: 다양한 타입의 유연한 지원 본문
파이썬의 Generic 타입은 여러 종류의 타입을 지원하여 코드의 유연성을 높여줍니다. 이번 글에서는 파이썬의 Generic 타입에 대해 알아보고 다양한 활용 예시를 살펴보겠습니다.
예제 1: Generic 함수
from typing import TypeVar, List
T = TypeVar('T')
def first_element(items: List[T]) -> T:
return items[0]
numbers = [1, 2, 3, 4, 5]
first_num = first_element(numbers)
print("First number:", first_num)
# 출력 결과: First number: 1
names = ["Alice", "Bob", "Charlie"]
first_name = first_element(names)
print("First name:", first_name)
# 출력 결과: First name: Alice
위 예제에서는 Generic 타입을 사용하여 리스트의 첫 번째 요소를 반환하는 함수를 정의합니다. 이 함수는 리스트에 포함된 요소의 타입에 관계없이 동작합니다.
예제 2: Generic 클래스
from typing import TypeVar
T = TypeVar('T')
class Box(Generic[T]):
def __init__(self, item: T):
self.item = item
def get_item(self) -> T:
return self.item
int_box = Box(10)
print("Item in int box:", int_box.get_item())
# 출력 결과: Item in int box: 10
str_box = Box("Hello")
print("Item in string box:", str_box.get_item())
# 출력 결과: Item in string box: Hello
이 예제에서는 Generic 클래스를 정의하여 다양한 타입의 아이템을 담을 수 있는 상자를 만듭니다. 이 클래스는 인스턴스화될 때 특정 타입의 아이템을 받아들이고, 이를 반환하는 메서드를 제공합니다.
예제 3: Generic 함수와 제약
from typing import TypeVar, Iterable
T = TypeVar('T', int, float)
def sum_values(items: Iterable[T]) -> T:
return sum(items)
numbers = [1, 2, 3, 4, 5]
total = sum_values(numbers)
print("Total sum:", total)
# 출력 결과: Total sum: 15
float_numbers = [1.5, 2.5, 3.5]
total_float = sum_values(float_numbers)
print("Total sum of floats:", total_float)
# 출력 결과: Total sum of floats: 7.5
위 예제에서는 Generic 함수에 제약을 추가하여 int
또는 float
타입의 요소만을 받아들이도록 합니다. 이를 통해 함수의 유연성을 유지하면서도 특정 타입의 요구 사항을 강제할 수 있습니다.
'프로그래밍' 카테고리의 다른 글
jQuery .bind() 메소드를 활용한 이벤트 처리 (0) | 2024.04.02 |
---|---|
파이썬의 Union 타입: 다양한 타입의 유연한 결합 (0) | 2024.04.01 |
파이썬의 Optional 타입: 값이 존재하지 않을 수 있는 유연한 변수 처리 (0) | 2024.04.01 |
파이썬의 Dict 자료형: 키-값 쌍의 유연한 저장소 (0) | 2024.04.01 |
Python FastAPI: 타입 선언의 중요성과 활용 방법 (0) | 2024.04.01 |