본문 바로가기

파이썬/사용법

[python] 파이썬 함수 파라미터 전달 방식 정리

안녕하세요!

이번 글에서는 파이썬이 함수 사용 시  파라미터를 전달 하는 방식의 종류에

대해서 알아보려고 합니다.

 

1) 파라미터를 전달하여 함수를 호출 하는 방식 2가지

1-1) 간단한 예시

1-2) 주의할 점

순으로 알아보겠습니다.


1) 파라미터를 전달하여 함수를 호출 하는 방식 2가지

 

파라미터를 전달하는 방식에는 2가지가 있는데요 

1번째는 position으로 전달하는 방식 2번째는 keyward로 전달하는 방식이 있습니다.

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

print(add(10,20))
print(add(a = 10, b = 20))

# 30
# 30

 

보시면 4번째 줄에 a,b가 있는 위치에 값을 전달하였습니다.

아래는 'keyword = 전달할 값'으로 값을 전달한 모습입니다.

 

 

1-1) 간단한 예시

def sub(a,b,abs = True):
	if abs:
        return abs(a-b)
    else:
        return a-b
        
sub(1000,900) # 2 position argument
sub(1000,b=600) # 1 position argument 1 keyword argument
sub(1000,9000,abs=False) # 2 position argument 1 keyword argument

 

위 처럼 함수를 사용할 때 전달하는 방식이 각자 다 다를 수 있습니다.

편하신 방법으로 사용해보시길 바랍니다.

 

 

 

1-2) 주의할 점

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


print(add(10,b = 40))
# print(add(a = 10,40))

# 30

# 아래를 주석처리 하지않고 출력하게 되면
# print(add(a = 10,40))
#                    ^
# SyntaxError: positional argument follows keyword argument

주의할 점은 첫번 째 인자를 keyword 로 전달했으면 뒤에도 keyword로 전달해야 합니다.

 

 

그 외에도 여러가지 주의할 점이 있는데요

기본만 지키면 발생하지 않는 에러라서 간단하게 정리만하고 넘어가겠습니다.

 

 

아래는 파이썬 레퍼런스 예시입니다.

def ask_ok(prompt, retries=4, reminder='Please try again!'): # 이미 값을 부여한 default argument
    while True:
        ok = input(prompt)
        if ok in ('y', 'ye', 'yes'):
            return True
        if ok in ('n', 'no', 'nop', 'nope'):
            return False
        retries = retries - 1
        if retries < 0:
            raise ValueError('invalid user response')
        print(reminder)



ask_ok() # 1) 필수적인 argument를 전달하지 않은 경우
ask_ok(100,prompt=200) # 2) 필수적인 값을 중복해서 전달하는 경우
ask_ok(memory = '8GB') # 3) 뜬금없는 argument를 전달하는 경우

1) 필수적인 argument를 전달하지 않은 경우

2) 필수적인 값을 중복해서 전달하는 경우

3) 뜬금없는 argument를 전달하는 경우 

 


정리)

함수에 인자를 전달하는방식

  함수에 인자를 전달하는 방식에는 2가지가 있다.

  position으로 argument  전달, keyword로 argument를 전달하는 방식이다.

 

주의할점 
  크게는 한가지인데 처음에 keyword 로 argument 전달했으면 끝까지 keyword로 줘야한다.

 

 

마치면서)

파이썬 공식 문서에서 파이썬Keyword Arguments로 예제를 찾아보시면 더욱 자세한 정보를 얻을 수 있습니다. 

다음 글에서도 유용한 파이썬 팁과 기능을 소개하도록 하겠습니다

감사합니다.