build my life

[Python] 함수 본문

Python

[Python] 함수

dalovee 2022. 8. 8. 14:17
728x90

함수

  • 코드의 반복을 줄이거나 어떤 용도를 위해 코드를 모아둔 걸 함수라고 한다.
  • 재사용할 코드 집합

 

함수 이름 규칙

  • 함수 이름은 동사로 시작하고 어떤 기능을 하는지 추측할 수 있게 해야한다.
  • 소문자로 작성하며, snake case를 따른다. (❗ snake case는 단어 사이에 _로 연결해주는 걸 의미)

 

함수 정의 방법

def <function_name>(parameter1, parameter2, ...):
    code context

 

1) 파라미터 X, 리턴값 X

def solution():
	print("출력")

 

2) 파라미터 O, 리턴값 X

def solution(num1, num2):
	if num1 > num2:
		print(num1)
	else:
		print(num2)

 

3) 파라미터 X, 리턴값 O

def solution():
	a = list(range(1,40))
	return sum(a)

 

4) 파라미터 O, 리턴값 O

def solution(a, b):
	return a + b

 

변수의 사용범위(scope)

  • 지역변수(local) : 함수 내부에서 만들어진 변수, 함수 내에서만 사용 가능
  • 전역변수(global) : 함수 외부에서 만들어진 변수, 어디서든 사용 가능
gv = 10 #전역변수

def do_func():
	a = 1 #지역변수
	print(gv)

do_func() #함수 불러오기

‼ 함수내에서 변수를 사용할 때는 파라미터를 정의해서 인자를 받거나 지역변수를 선언에서 사용 !!

 

 

파라미터(parameter)

  • 함수를 사용할 때 값을 함수에 넘겨주는데 그것을 받는 변수를 파라미터라고 한다.
def solution(num): #파라미터 num이 3을 받는다.
	return num
    
solution(3) #solution 함수에 3을 넘긴다.

이러한 파라미터를 정의하는 방식이 3가지가 있다.

 

1) 디폴트 파라미터(default parameter)

  • 값을 넘겨주지 않을 때 파라미터에 지정된 초기값을 사용함
def solution(a,b,c=1): #a =1, b=2 c값은 받지 않았기 때문에 지정된 초기값 1로 받아진다.
	return a, b, c
    
solution(1,2) # solution에 1,2 값만 넣어준다.

# (1,2,1)
  • 디폴트 파라미터 값은 일반 파라미터에 뒤에 넣어줘야 한다.
def solution(a,b=1,c): # X
def solution(a,c,b=1): # O

 

2) 가변 파라미터

  • 값이 n개 이상 들어올 경우엔 가변 파라미터를 정의한다.(0개 이상)
  • * 를 이용해서 파라미터명을 정의해주면 된다.
  • 함수 내부에서는 튜플로 묶인다.
  • 일반적인 표현 : *args
def solution(*args):
	print(args)

solution(1,2,3)
# output : (1,2,3)
  • 만약 키워드 파라미터와 함께 사용된다면 키워드형식으로 값을 넣어줘야한다.
#키워드 형식으로 넣지 않았을 경우
def solution(*args, b=1):
	print(args)

solution(1,2,3,4)
# output : (1,2,3,4)

#키워드 형식으로 넣었을 경우
def solution(*args, b=1):
	print(args)

solution(1,2,3,b=4)
# output : (1,2,3)

packing & unpacking 개념을 알고 넘어가보자! 택배를 생각하면 이해하기 쉽다😁

  • packing : 하나의 변수에 여러 객체를 묶어서 담는 방식
  • unpacking : 묶여 있는 여러 객체를 여러 변수에 풀어서 담는 방식
#unpacking
def solution(*args):
	print(args)

tup = (1,2,3)
solution(*tup) # solution(1,2,3)
#output : (1,2,3)

print(*tup) # 1 2 3

=> *tup으로 각각의 값을 풀어서 함수에 넣어주면 *args가 다시 묶어서 출력한다!

 

3) 키워드 가변 파라미터

  • 가변 파라미터가 값이 n개 이상 들어올 경우면 키워드 가변 파라미터는 키워드 값이 n개 이상 들어올 수 있는 경우 사용한다.
  • 함수 내부에서 dict으로 묶인다.
  • 키워드 값에서 키워드가 key, 값이 value가 된다.
  • 일반적인 표현 : **kwargs
def solution(**kwargs):
	print(kwargs)
    
solution(name="홍길동",age=20)
# output: {'name' : '홍길동', 'age' : 20}

 

여러 종류의 파라미터를 정의할 경우 순서를 따라줘야한다.

def solution(postional_param, default_param="default_value", *args, **kwargs):

함수를 정의하는 법과 파라미터의 여러가지 사용법에 대해서 배웠다.

가변 파라미터는 개발을 할때 다른 사람들도 쉽게 함수를 가져다가 쓸 수 있게 해준다!

나중에 데코레이터 구현할 때에도 이용이 되니 개념을 확실하게 잡고 넘어갈 것..!

728x90