728x90
반응형
파이썬 함수식 정의
# 파이썬 함수 및 중요성
# 파이썬 함수식 및 람다(lambda)
#함수 정의 방법
# def function_name(parameter):
# code
# 예제1
def first_func(w):
print("Hello, ", w)
word = "Goodboy"
first_func(word)
print(first_func)
#예제2
def return_func(w1):
value = "Hello, "+str(w1)
return value
x = return_func('Goodboy2')
print(x)
# 예제3(다중반환)
def func_mul(x):
y1 = x * 10
y2 = x * 20
y3 = x * 30
return y1,y2,y3
x, y, z = func_mul(10)
print(x,y,z)
# 튜플 리턴
def func_mul2(x):
y1 = x * 10
y2 = x * 20
y3 = x * 30
return (y1,y2,y3)
q = func_mul2(20)
print(type(q),q, list(q))
# 리스트 리턴
def func_mul3(x):
y1 = x * 10
y2 = x * 20
y3 = x * 30
return [y1,y2,y3]
q = func_mul3(20)
print(type(q),q, set(q))
# 딕셔너리 리턴
def func_mul4(x):
y1 = x * 10
y2 = x * 20
y3 = x * 30
return {'v1': y1, 'v2': y2 , 'v3' : y3}
d = func_mul4(30)
print(type(d),d, d.get('v1'), d.items(), d.keys())
print()
*args , **kwargs 매개변수 명 지정
#중요
# *args, **kwargs
# *args(언팩킹)
def args_func(*args): #매개변수명 자유
for i, v in enumerate(args):
print('Result : {}'.format(i), v)
print('----------')
args_func('Lee')
args_func('Lee', 'Park')
args_func('Lee', 'Park', 'Kim') # 함수 유연하게 사, 가변인자 사용가능
print()
# **kwargs(언팩킹)
def kwargs_func(**kwargs): #매개변수 명 자유
for v in kwargs.keys():
print("{}".format(v), kwargs[v])
print('------------')
kwargs_func(name1='Lee') # 키 - 값으로 전달( 좀 더 정확하게 사용 )
kwargs_func(name1='Lee',name2='Part')
kwargs_func(name1='Lee',name2='Part',name3='Cho')
print()
#전체 혼합
def example(args_1, args_2, *args, **kwargs):
print(args_1, args_2, args, kwargs)
example(10,20,'Lee', 'Park', 'Kim', age1=20, age2=30, age3=40 )
print()
#####################
#중첩함수
def nested_func(num):
def func_in_func(num):
print(num)
print("In func")
func_in_func(num+100)
nested_func(100)
#함수 안 함수 실행시 에러발생 , 실행불가
#func_in_func(1000)
print()
람다(lamba) 함수
# 람다식 예제
# 메모리 절약, 가독성 향상, 코드 간결
# 함수는 객체 생성 -> 리소스 (메모리) 할당
# 람다는 즉시 실행 함수(Heap 초기화) -> 메모리 초기화
# 남발시 가독성 오히려 감소
# def mul_func(x,y):
# retun x * y
#
# lamba x, y:x*y
# 일반적 함수 -> 할당
def mul_func(x,y):
return x * y
print(mul_func(10, 50))
mul_func_var = mul_func
print(mul_func_var(20,50))
print()
#람다 함수 -> 할당
lambda_mul_func = lambda x,y:x*y
print(lambda_mul_func(50,50))
def func_final(x, y, func):
print('>>>>>>',x * y * func(100,100))
func_final(10,20, lambda_mul_func) # 람다식 바로 출력 가능
반응형
'Backend > Python' 카테고리의 다른 글
파이썬 - 클래스(Class) (0) | 2021.09.16 |
---|---|
파이썬 함수 - functions(2) (0) | 2021.09.16 |
파이썬 흐름제어 (3) - while 문 (0) | 2021.09.14 |
파이썬 흐름제어 (2) - for 문 (0) | 2021.09.14 |
파이썬 흐름제어 (1) - if 문 (0) | 2021.09.14 |