- 중첩함수
def out_function():
print('out_function called')
def in_function(): #중첩함수
print('in_function called')
in_function() #함수 내에서 호출
out_function()
out_function called
in_function called
- 내부 함수를 함수 밖에서 호출할 경우 실행되지 않음
def out_function():
print('out_function called')
def in_function():
print('in_function called')
in_function() #함수 외부에서 호출할 경우 에러
out_function()
NameError: name 'in_function' is not defined
- 실습
예제 1) calculator() 함수를 선언하고 calculator() 안에 덧셈, 뺄셈, 곱셈, 나눗셈 함수를 선언하자.
def calculator(n1, n2, operator):
def addCal():
add = n1 + n2
print('덧셈: {}'.format(add))
def subCal():
substitute = n1 - n2
print('뺄셈: {}'.format(substitute))
def multipleCal():
multiple = n1 * n2
print('곱셈: {}'.format(multiple))
def divideCal():
divide = n1 / n2
print('나눗셈: %.2f' % divide)
if operator == 1:
addCal()
elif operator == 2:
subCal()
elif operator == 3:
multipleCal()
else:
divideCal()
while True:
n1 = float(input('실수(n1) 입력: '))
n2 = float(input('실수(n2) 입력: '))
operatorNum = int(input('1. 덧셈 2. 뺄셈 3. 곱셈 4. 나눗셈 5. 종료'))
if operatorNum == 5:
print('종료')
break
calculator(n1, n2, operatorNum) #operatorNum != 5인 경우 calculator() 함수 실행
실수(n1) 입력: 10
실수(n2) 입력: 4
1. 덧셈 2. 뺄셈 3. 곱셈 4. 나눗셈 5. 종료3
곱셈: 40.0
실수(n1) 입력: 7
실수(n2) 입력: 9
1. 덧셈 2. 뺄셈 3. 곱셈 4. 나눗셈 5. 종료5
종료