반응형
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
반응형
'Python' 카테고리의 다른 글
[Python] 오늘도 정리 - yield란? (0) | 2022.11.11 |
---|---|
[Python] Class 변수와 Instance 변수 사용 방법 (0) | 2022.08.10 |
[Python] Decorators 장식자 알아보기 (0) | 2022.08.10 |
일급 함수(First Class function)와 Closure (0) | 2022.08.06 |
black을 사용하면 코드 포맷팅, 컨밴션 통일이 가능하다고? (0) | 2022.08.06 |