본문 바로가기

PYTHON

Method Overloading

- 메소드 이름이 동일한 경우, 가장 최근에 정의한 메소드로 덮어씀(overwriting) 
- python은 overloading을 기본적으로 지원하지 않음 
① 비효율적 해결방법: 조건문 
② 효율적 해결방법: multipledispatch 라이브러리 
                          인자와 파라미터 갯수에 따라서 알아서 처리

# 가장 마지막에 실행된 함수 add(a,b) 함수가 앞에 있는 add(a) 함수를 덮어씀.
def add(a):
    return a + 1

def add(a, b):
    return a + b
    
add(1)   # 해당 함수는 add(a,b)에의해 오버로딩됨
==> TypeError: add() missing 1 required positional argument: 'b'

add(1,2)
==> 3

# positional argument 
sum((1,2,3,4))
==> 10

#argument는 2개가 필요한데 4개를 넣으면 에러를 일으킨다.
sum(1,2,3,4)
==> TypeError: sum expected at most 2 arguments, got 4

#positional only 방식이므로 keyword 방식으로 argument를 넣으면 에러를 일으킨다.
sum(iterable=(1,2,3,4))
==> TypeError: sum() takes no keyword arguments

'PYTHON' 카테고리의 다른 글

문자열(str) 타입  (0) 2020.12.11
Function  (0) 2020.11.20
변수의 스코프  (0) 2020.11.20
MAP  (0) 2020.11.20
Generator  (0) 2020.11.20