파이썬 함수_이론
파이썬 함수는 def func_name(a, b): 처럼 def로 선언하고 func_name(함수 이름)을 정의해주고 (a, b)처럼 입력값을 정의해주면 된다.
입력값은 def func_name():, def func_name(a, b):, def func_name(a, *args):, def func_name(a, b='초기값'): 같은 여러가지 형식으로 정의할 수 있다.
*args같은 경우엔 입력값이 1일수도, 1과 2일수도, 1과 2와 3일 수도있는 가변적인 상황에 사용된다. args는 임의로 정의한것이고 * 표시가 그 역할을 한다.
만약
def calculator(choice, *args):
result = 0
if choice == '더하기':
for i in args:
result += i
.
.
.
return result
라고 정의한다면 calculator('더하기',1,2,3) 또는 calculator('더하기',1,6,10,22,40,50)와 같이 가변적인 상황에서도 수행할 수 있는것이다.
JAVA에서의 오버라이딩과 비슷하다고 생각할 수 있다.
또한
def whoareyou(name, age, sex='남자'):
print(name + age + sex)
라고 정의한다면 whoareyou('맥두날', '20')를 호출했을때, sex부분에 초기값으로 설정한 '남자'가 나온다.
주의해야할것은 def whoareyou(name, sex='남자', age)처럼 순서가 바뀌면 whoareyou('맥두날', '20')를 호출했을때 오류가 난다는 것이다.
당연하게도 '맥두날'이 name인건 알지만 '20'을 sex에 대입해야할지 age에 대입해야할지 알 수 없기 때문이다.