함수()
함수의 형태를 생각해보자.
우리는 함수를 쓸 때, 함수 이름 끝에 ()괄호를 붙인다.
이 함수를 활성화하겠다는 뜻이다.
len(), list(), tuple(), add() 등
우리가 아는 함수를 사용할 때를 떠올려 보면
거의 대부분 이런 형식이다.
functon(argument1, argument2, argument3)
함수를 호출할 때는 위의 형태이다.
괄호 안에 인수(argument)를 넣어준다.
그런데,
functon(argument1, argument2=함수)
위의 경우처럼 함수의 인수로, 함수가 들어올 때
예컨데, onkey(key=key, fun=fun)의 경우에는
함수에 괄호를 붙이지 않는다.
예시를 보기 위해,
먼저 onkey()에 대해 알아보자.
turtle의 매서드 중 하나인 onkey()는
onkey는 파라미터로 function과 key를 받는다.
키 이벤트가 있을 때, function이 실행된다는 뜻이다.
screen.listen()
screen.onkey(key="space", fun=move_forwards)
끝에 괄호를 추가하지 않는 이유는
괄호를 하면,
이 함수가 그 자리에서 실행된다(활성화)는 뜻인데
함수를 다른 함수에 전달할 때 바로 실행되기를 원하지 않기 때문이다.
onkey()의 경우
space키를 누르는 시점에,
move_forwards 함수가 실행되기를 원한다.
함수의 인자로 함수를 입력할 때는
괄호를 입력하지 않음으로써,
함수가 활성화되는 시점을
미룬다.
다른 예시를 보자.
def add(n1, n2):
return n1 + n2
def subtract(n1, n2):
return n1 - n2
def multiply(n1, n2):
return n1 * n2
def divide(n1, n2):
return n1 / n2
# 함수 인자로 함수를 받는 경우 ()괄호 하지 않음
def calculator(n1, n2, func):
return func(n1, n2)
result = calculator(2, 5, multiply)
print(result)
result = calculator(2, 5, divide)
print(result)
result = calculator(2, 5, subtract)
print(result)
'파이썬 > 파이썬(python) 중급' 카테고리의 다른 글
[19-3 파이썬] 드로잉팬 만들기(터틀 명령어 실습) (0) | 2022.08.27 |
---|---|
[19-2 파이썬] 터틀(turtle) 모듈에서 이벤트 리스너(event listner) (0) | 2022.08.27 |
[18-7 파이썬] 예술 작품 만들기(파이썬 라이브러리 turtle, colorgram 이용) (0) | 2022.08.27 |
[18-6 파이썬] colorgram 패키지 - 이미지에서 rgb값 추출하기 (0) | 2022.08.27 |
[18-5 파이썬] 네임튜플 namedtuple (0) | 2022.08.27 |