728x90
클래스를 사용하다 보면 인자 값 개수에 따라서
다르게 동작하여야 하는 경우가 발생할 수 있습니다
이럴 경우 __call__ 함수를 이용해서 사용하면 됩니다
class calc():
g = 0
def __init__(self) -> None:
pass
def __call__(self, *args: int, **kwds: int) -> None:
if len(args) == 1:
pre = self.g
self.g += args[0]
return print("add_sum: {} + {} = {}".format(pre, args[0], pre + args[0]))
elif len(args) == 2:
self.g = args[0] + args[1]
return print("add: {} + {} = {}".format(args[0], args[1], args[0] + args[1]))
else:
self.g = 0
return print("인수의 개수가 맞지 않습니다.")
addsum = calc()
addsum(3)
addsum(2)
addsum(4, 5)
addsum(6)
addsum(3, 4)
addsum(3, 4, 5)
addsum(2)
결과 값
728x90
반응형
'Application > Python' 카테고리의 다른 글
[Python] 다른 프로세스 시작 및 종료 [subprocess & kill] (0) | 2023.04.04 |
---|---|
[Python] 웹 크롤링 (selenium) (0) | 2023.04.03 |
[Python] 함수 가변 인자 (args) (0) | 2022.12.21 |
[Python] 카운팅 프로그램 소스 코드 (feat. tkinter) (0) | 2022.12.15 |
[Python] 실행 파일 만들기 (0) | 2022.12.15 |