Application/Python

[Python] Class 다중 인자 값 설정

devsalix 2022. 12. 14. 14:28
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
반응형