1. 함수
1-1. 입출력 유무에 따른 함수의 경우의 수
1-2. 전역변수, 지역변수
1-3. 가변함수 (키워드 가변 파라미터)
*args는 Python 함수에서 가변 인자를 받을 때 사용하는 문법입니다. 함수에 전달되는 인자의 개수가 정해져 있지 않을 때 유용하게 사용할 수 있습니다. *args는 튜플 형태로 전달된 모든 위치 인자를 함수 내에서 사용할 수 있게 합니다.
*args는 튜플, **args 는 dict로 입력
def add(a,b,c):
a *= 2
b *= 3
c *= 4
return a+b+c
a1= 10
b1 = 5
c2 = 7
dic = {
# 키: 파라미터명, 밸류: 전달할 데이터
'a':10,'b':5,'c':7
}
add(b=b1,a=a1,c=c2)
add(**dic) # 키워드 가변 파라미터터
def add_numbers(*args):
return sum(args)
print(add_numbers(1, 2, 3)) # 출력: 6
print(add_numbers(10, 20)) # 출력: 30
print(add_numbers(5)) # 출력: 5
user={
'name':'Jenny',
'age':25,
'address':'서울'
}
def print_user_info(answer, **user): # **args
print(f'{user['name']}는 {answer}라고 말했어요')
print_user_info('코딩좋아',**user)
1-4. 람다 함수
일회용 함수
# 함수명(변수) = lambda input : logic (return defalult value)
# 함수도 변수이고, 데이터이다!
lambda_add = lambda a,b : a+b
lambda_add(1,2)
1-5. Closure (내부 함수)
- 내부에 있는 함수를 외부로 리턴하는 것
- 외부에서 조작 못함 (해킹방지)
1-6. Call back (콜백함수)
- 외부에 있는 함수를 내부로 전달
1-7. Decorate
# 실행시간 알아볼 때 데코레이터 많이 쓴다.
import time
def time_func(param_func):
def wrapper(*args):
start = time.time()
lst = []
for i in args:
try:
lst.append(int(i))
except:
pass
param_func(*lst)
end = time.time()
print("함수 수행시간은: %f 초" % (end - start))
return wrapper
@time_func
def add(*args):
print(sum(args))
add(1,2,3,'a','b')
[ 실행 순서 ]
1. 데코레이터 적용: @time_func가 add 함수에 적용됩니다. 이제 add 함수는 wrapper 함수로 대체됩니다.
2. 함수 호출: add(1, 2, 3)을 호출하면 실제로는 wrapper(1, 2, 3)가 호출됩니다.
3. 시작 시간 기록: wrapper 함수가 시작 시간을 기록합니다.
4. 인자 변환: 전달된 인자들을 정수로 변환하여 리스트 lst에 추가합니다.
5. 원래 함수 호출: 변환된 인자들을 사용하여 원래의 add 함수를 호출합니다. 여기서 add 함수는 인자들의 합계를 출력합니다.
6. 종료 시간 기록: wrapper 함수가 종료 시간을 기록합니다.
7. 수행 시간 출력: 함수의 수행 시간을 계산하여 출력합니다.
'개발공부 > SK Networks Family AI bootcamp 강의노트' 카테고리의 다른 글
개발 공부 방법 공유 (0) | 2025.01.14 |
---|---|
6일차 [파이썬기초(iterator,class,상속)] (0) | 2025.01.14 |
5일차 [ 파이썬 기초 (가위바위보 고도화,묵찌빠) ] (0) | 2025.01.13 |
4일차 [ 파이썬 기초/ try except] (0) | 2025.01.10 |
첫 주차 회고 (1/10) (0) | 2025.01.10 |