728x90
반응형
1 ) kwargs
Python 3.12 부터 변수 Type에 관한 모듈이 많이 개선되었다. 그 중 Typing에 NotRequired, TypedDict, Unpack을 사용해서 class 정의와 함수 변수 관리가 좀더 용이해졌다.
from typing import NotRequired, TypedDict, Unpack
class Kwargs(TypedDict):
name : str
age : NotRequired[int]
def profile(**kwargs: Unpack[Kwargs]) -> None:
for k, v in kwargs.items():
print(f"{k}: {v}")
if __name__ == "__main__":
profile(name="Ethan", age=25)
Kwargs의 Parameter를 TypedDict를 이용해 dictionary로 선언하고 class 내에서 받을 수 있어 가독성이 좋아졌다.
NotRequired를 사용하여 개별 키를 필수가 아닌 것으로 표시할 수 있다.
Unpack 튜플이 압축 해제된 것으로 표시하기 위해 사용
2 ) override
상속 받은 Fruit에 있는 함수를 Banana에서 재정의 할때 @override decorator를 사용해서 변경시 방지할 수 있다.
from typing import override
class Fruit:
def color(self) -> None:
print("yellow~!")
def weight(self) -> None:
print("30g")
class Banana(Fruit):
@override
def weight(self) -> None:
print("40g")
if __name__=='__main__':
Banana().weight()
반응형
'Python' 카테고리의 다른 글
[pipx] python 전역 패키지관리 pipx (0) | 2023.11.29 |
---|---|
[mandelbrot set] 망델브로 집합 (0) | 2023.11.19 |
[Version] 3.12 rc (Release Candidates) (1) - f-string (0) | 2023.10.18 |
[JupyterNote Book] Jupytext Notebook -> Markdown (0) | 2023.09.30 |
[Python] importlib 사용자 정의 리로드 (0) | 2023.08.25 |