[Python] 함수형 프로그래밍

Yezz9·2022년 5월 24일

- 함수도 객체다

: 변수에 할당 가능

>>> def abc(text):
		print(text)
>>> f1 = abc
>>> f1("hello")
hello
>>> def f1():
		print("f1")
>>> a = f2()
		return f1
        
>>> a = f2()
>>> type(a)
<class "function">
>>> a()
f1

- 시간 추가 함수

: 시간 체크 부분이 중복으로 들어간다. 시간 체크가 나중에 필요 없을 때 찾아서 제거 해야한다.

import time

def testA():
  t1 = time.time()
  time.sleep(1) # func for code A
  t2 = time.time()–t1
  print(t2)
def testB():
  t1 = time.time()
  time.sleep(2) # func for code B
  t2 = time.time()–t1
  print(t2)
>> testA()
1.0
>> testB()
2.0

- 리스트에 함수 객체 담기

: 리스트는 함수 객체도 담을 수 있다.

def add(a, b):
	return a+b
def sub(a, b):
	return a-b

f = add
c = f(1, 2)
print(c) #3
f = sub
c = f(1, 2)
print(c) #-1

fList = [add, sub]
f = fList[0]
c = f(1, 2)
print(c) # 3

- 함수를 다른 함수의 인자로 넘기고 받을 수 있다

profile
감자에옹

0개의 댓글