반응형

파이썬에서 사용하는 함수 매개변수 종류에 대해 작성

 

파이썬에서는 아래 5가지 종류의 함수 매개변수를 선언해서 사용할 수 있다.

1. default arguments

2. keyword arguments

3. positional arguments

4. arbitrary positional arguments

5. arbitrary keyword arguments

 

1. default arguments

  • 기본 매개변수는 함수가 정의되는 동안 제공된는 값이다.
  • "=" 기호를 사용해 매개변수의 기본값을 설정한다.
  • 기본 매개변수는 함수 호출 동안 선택적으로 사용된다.
  • 함수 호출 시 기본 매개변수에 값을 제공하면 기본 매개변수에 덮어 씌여진다.
  • 함수는 기본 매개변수를 원하는 만큼 가질 수 있다. (갯수 제한 없음)
  • 기본값 설정이 필수적이지 않다.

예시)

def add(a, b=5, c=10):
	return (a+b+c)

위 예시는 b,c가 기본 매개변수로 설정되어 있는 것을 보여준다.

아래 함수 호출 예시를 참고

print(add(3)) #return 18 a = 3, b = 5, c = 10
print(add(3,4)) #return 17 a = 3, b = 4, c = 10
print(add(2,3,4)) #return 9 a = 2, b = 3, c =4

 

2. Keyword Arguments

  • key = value 형식으로 사용하는 매개변수
  • 함수에 정의된 매개변수 순서를 따르지 않아도 값이 통과된다.
  • 키워드 매개변수는 함수에 정의 된 매개변수랑 일치해야한다.
  • 함수 호출시 사용되는 매개변수 타입 중 하나이다.

예시)

def add(a,b=5,c=10):
    return (a+b+c)

위와 같이 함수를 선언한다.

아래 예시와 같이 함수 호출시 매개변수를 key=value 로 사용하는 것을 keyword arguments 라 한다.

정의된 매개변수 순서를 지키지 않고 매개변수 키 값만 알맞게 설정하여 호출 가능하다.

print (add(b=10,c=15,a=20)) #return 45
print (add(a=10)) #return 25

 

3. Positional Arguments

  • 위치 매개변수 함수 호출 시 매개변수 위치에 값을 대입하여 호출하는 것을 의미한다.

예시)

def add(a,b,c):
    return (a+b+c)
    
print (add(10,20,30)) #return 60
print (add(10,c=30,b=20)) #return 60

위 첫번째 print 문과 같이 매개변수 위치에 값을 설정하여 호출 가능하다.

두번째 print 문처럼 keyword 매개변수와 섞어서 사용이 가능하다.

 

위 세가지 매개변수 사용에 대해 주의할 점!

 

#1. default 매개변수는 non-defualt 매개변수보다 앞에 선언할 수 없다.
def add(a=5,b,c):
    return (a+b+c)
#Output:SyntaxError: non-default argument follows default argument

#2. keyword 매개변수는 positional 매개변수보다 앞에 선언할 수 없다.
def add(a,b,c):
    return (a+b+c)
print (add(a=10,3,4))
#Output:SyntaxError: positional argument follows keyword argument

#3. 선언되지 않은 keyword 매개변수는 사용불가
def add(a,b,c):
    return (a+b+c)
print (add(a=10,b1=5,c=12))
#Output:TypeError: add() got an unexpected keyword argument 'b1'

#4. 중복된 keyword 매개변수 사용 불가
def add(a,b,c):
    return (a+b+c)
print (add(a=10,b=5,b=10,c=12))
#Output:SyntaxError: keyword argument repeated

 

4. arbitrary positional arguments

  • 매개변수 앞에 *를 사용하여 선언한 매개변수
  • 매개변수 선언을 가변적으로 설정할 때 사용한다.
  • 매개변수를 list 타입과 동일하게 사용

예시)

def add(*b):
    result=0
    for i in b:
         result=result+i
    return result

print (add(1,2,3,4,5)) #return 15
print (add(10,20)) #return 30

위 예시처럼 add 함수에 매개변수를 가변적으로 설정하여 호출이 가능하다

 

5. arbitrary keyword arguments

  • 매개변수 앞에 **를 사용하여 선언한 매개변수
  • 4번과 같이 매개변수를 가변적으로 설정할 수 있고 key:value 매개변수를 dictionary 타입과 동일하게 사용

예시)

def fn(**a):
    for i in a.items():
        print (i)
fn(numbers=5,colors="blue",fruits="apple")
'''
return
('numbers', 5)
('colors', 'blue')
('fruits', 'apple')
'''

 

참고 사이트 : https://levelup.gitconnected.com/5-types-of-arguments-in-python-function-definition-e0e2a2cafd29

반응형

'프로그래밍 > Python' 카테고리의 다른 글

[Python]sqlalchemy 사용법  (0) 2022.12.07
[Python] flask_restful fields  (0) 2021.10.08
Single Linked list 구현  (0) 2018.03.22
창원시 버스 API 사용하기  (1) 2016.02.22

+ Recent posts