본문 바로가기
Python

[Python] 함수 정의 하기

by Lee David 2022. 11. 3.
반응형
1. 함수 정의 하기
def f(a, b, c, d):
    print(f"{a + b}, {c + d}")

f(c=1,d=5,a=3,b=7) # 결과 10, 6
2. default 인자 정의하기
def f(a=1, b, c=1, d):
    print(f"{a + b}, {c + d}")

f(b=3, d=7) # 결과 4, 8
3. 참조 인자 위치 강제 하기

인자의 key를 인자에 적용하여 함수를 호출하면 순서에 상관없이 인자를 입력할 수 있습니다.

하지만 /를 인자 사이에 선언하면 / 앞에 위치한 인자의 위치를 강제시킬수 있습니다.

def f(a, b, /, c, d):
    print(f"{a + b}, {c + d}")

f(3,6,1,1) # 결과 9, 2

# Type Error 발생하는 경우
f(c=3,d=6,a=1,b=1)
# 결과
# TypeError                                 Traceback (most recent call last)
# Cell In [10], line 9
#       6 def f(a, b, /, c, d):
#       7     print(f"{a + b}, {c + d}")
# ----> 9 f(c=3,d=6,a=1,b=1)
4. 참조 인자의 key 선언 강제 하기

함수를 불러올때 인자를 대입할때에 key 선언은 강제하기 위해서는 key를 강제하고자 하는 인자 앞에 *를 추가해 주면 됩니다.

def f(a, b, *, c, d):
    print(f"{a + b}, {c + d}")

f(1,2,c=3,d=6) # 결과 3, 9

f(1,2,3,6)
# Type Error 결과
# TypeError                                 Traceback (most recent call last)
# Cell In [15], line 14
#      11 def f(a, b, *, c, d):
#      12     print(f"{a + b}, {c + d}")
# ---> 14 f(1,2,3,6)

# TypeError: f() takes 2 positional arguments but 4 were given
5. 튜플 인자를 사용하기

함수 선언시 튜플을 인자로 사용은 가능하지만 한개 이상은 사용이 불가능 합니다.

def f(*a:int, sep="/"):
    b = map(str, a)
    print(sep.join(b))

f(1,3,5,7,9,sep=',') # 결과 1,3,5,7,9

반대로 튜플/배열을 함수에 대입하여 사용도 가능합니다.

# 튜플을 선언합니다.
t = (1,3,5)
def f(a,b,c):
    print(f"{a}-{b}-{c}")

f(*t) # 결과 1-3-5
반응형