파이썬 함수
# *args -> Tuple return, 여러개 인자 리턴
# **kwargs -> Dict return / key-value 구조
def example_mul(arg1, arg2, *args, **kwargs):
print(arg1, arg2, args, kwargs)
example_mul(10, 20, 'park', 'kim', name1 = 'lee')
# 중첩 함수 (클로저) - 함수안에 함수가 있음 -> 변수 선언 줄이고 메모리 관리 효율적
def nested_func(num):
def func_in_func(num):
print('>>>', num)
print("In func")
func_in_func(num + 10000)
nested_func(10000)
# 힌트
def func_mul3(x: int) -> list:
y1 = x*100
y2 = x*200
return [y1,y2]
print(func_mul3(5))
# 람다식 예제
# 메모리 절약, 가독성 향상, 코드 간결
# 함수는 객체 생성 -> 리소스(메모리) 할당
# 람다는 즉시 실행 (Heap 초기화) -> 메모리 초기화
lambda_mul_10 = lambda x: x* 10
print(lambda_mul_10(10))
def func_final(x,y,func):
print(x*y*func(10))
func_final(10, 10, lambda_mul_10)
func_final(10,10, lambda x: x* 1000)