03. 파이썬 함수

함수 정의

def 함수 이름 (args...):

 

def는 파이썬 예약어로서 함수를 정의한다.

 

함수 정의 방법#1 - 기본값을 가진 형식인수

def function (x=1, y=1):

() 사이의 값은 함수의 형식인수 이다. 그리고 x,y는 기본값을 1로 정의한다.

그리고 함수의 호출은  function(1,5) 또는 function(y=12,x=5) 처럼 키워드를 주어 인수의 순서없이 입력이 가능하다. (키워드 인수호출)

 

함수 인수

함수의 인자로 가변형 인자를 받을 수 있다. 이때 가변형 인자를 튜플 또는 사전형 타입으로 정의할 수 있다.

 

함수의 인수#1 - 튜플형 인수

def function (*args):

 

함수의 인수#2 - 사전형 인수

def function (**args):

 

 

람다 표현식

lambda 인수 : 표현식

# lambda 표현식

func = lambda x : x**2

print(func(3))

========result=======
9

 

클로저

함수의 환경을 포함한 정보

 

제너레이터 함수 : yield

함수 내부에 yield 키워드가 있으면 해당 함수는 제너레이터 함수가 된다.

def func():
    n = 0;
    while n<10:
        yield n;
        n+=1;

info = func();
print(info.__next__());
print(info.__next__());
print(info.__next__());

yield 는 값을 반환함과 동시에 함수의 실행을 잠시 멈춘다.

 

코루틴

제너레이터 종류로서 일반 제너레이터와 다른점은 __next()__ 함수가 실행 되기 전까지 호출한 함수는 대기상태이다.

코루틴은 여기에 send()를 통해 인수를 전달하는 기능까지 포함하고있다.

 


def func():
    total = 0;
    while True:
        n=(yield);
        total+=n;
        print(total);

info = func();
info.__next__();
print(info.send(5));
print(info.send(10));

댓글

Designed by JB FACTORY