728x90
반응형
SMALL
1. 콜백함수(Callback Function)★
- 직접 호출하는 것이 아닌 다른 함수에 의해 호출되는 함수
def callback_func(func): # func()함수의 이름을 보냄으로
for i in range(5): # 함수의 주소를 보내게 됌
func() # 그래서 그 주소의 함수를 실행하게 됌
def print_hello(): # 함수도 객체이기때문에 함수명에 주소가 있음
print('안녕하세요! 파이썬!')
print_hello()
안녕하세요! 파이썬!
callback_func(print_hello)
안녕하세요! 파이썬!
안녕하세요! 파이썬!
안녕하세요! 파이썬!
안녕하세요! 파이썬!
안녕하세요! 파이썬!
def callback_func(func, num):
for i in range(num):
func(i + 1)
def print_hello(num):
print('안녕하세요 파2썬!', num)
def print_hi(num):
print(f'hi 파3썬 {num}트')
callback_func(print_hello, 3)
안녕하세요 파2썬! 1
안녕하세요 파2썬! 2
안녕하세요 파2썬! 3
callback_func(print_hi, 5)
hi 파3썬 1트
hi 파3썬 2트
hi 파3썬 3트
hi 파3썬 4트
hi 파3썬 5트
2. 람다 함수(Lambda Function)
- 단일문으로 표현되는 익명함수
- 코드상에서 한번만 사용되는 기능이 있을 때, 굳이 함수를 만들지 않고 1회성으로 함수를 만들어 사용 (함수는 클래스를 통해 생성된 객체)
- 무조건 return형
def square(x):
return x **2
print(square(4))
16
lambda x: x ** 2
<function __main__.<lambda>(x)>
# 이렇게 안쓴다 ㅋㅋ
square = lambda x: x ** 2
# 전체가 객체라는것을 보여주기 위해서 이렇게 씀
print(square(4))
16
print(square(5))
25
(lambda x: x ** 2)(4) # 이것도 잘안씀
16
def myData(string):
return len(string.strip())
# 앞뒤공백 제거후 길이를 세주는 함수
print(myData('apple'))
print(myData(' apple '))
5
5
data = ['watermelon', ' apple ', ' banana', ' avocado ']
print(sorted(data))
[' apple ', ' banana', ' avocado ', 'watermelon']
# mydata 함수를 적용해서 data리스트에서 sorted 해주는것
print(sorted(data, key=myData))
[' apple ', ' banana', ' avocado ', 'watermelon']
# 람다함수를 사용하여 위 예제를 변경
print(sorted(data, key=lambda string: len(string.strip())))
# data의 갯수(4) 만큼 매개변수string에 대입 해서 sort해서 출력하는 식
[' apple ', ' banana', ' avocado ', 'watermelon']
2-1. 람다가 유용하게 사용되는 대표적인 함수
# filter(): 특정 조건을 만족하는 요소만 남기고 필터링
# 트루일때만 남기게 됌
li = [1, 2, 3, 4, 7, 9, 10, 14, 15, 19, 20]
# print(filter(lambda n: n % 2 == 0, li))
result = list(filter(lambda n: n % 2 == 0, li))
print(result)
[2, 4, 10, 14, 20]
# 위에 람다랑 같은 역할의 함수
# 위에서 True False로 리턴해주었기때문에 함수에서도 bool형으로
def even(n):
if n % 2 == 0:
return True
else:
return False
# filter가 콜백함수이기때문에 even 함수에 ()를 사용안하였다.
result = list(filter(even, li))
print(result)
[2, 4, 10, 14, 20]
[0.01, 0.02, 0.03, 0.04, 0.07, 0.09, 0.1, 0.14, 0.15, 0.19, 0.2]
[0.01, 0.02, 0.03, 0.04, 0.07, 0.09, 0.1, 0.14, 0.15, 0.19, 0.2]
728x90
반응형
LIST
'파이썬' 카테고리의 다른 글
| 객체 지향과 클래스 (0) | 2023.03.10 |
|---|---|
| 랜덤 모듈 (0) | 2023.03.09 |
| 변수의 범위 (0) | 2023.03.09 |
| 사용자 정의 함수(함수만들기) (0) | 2023.03.09 |
| 세트(set) (0) | 2023.03.08 |