티스토리 뷰

Language/Python

[Python] Parameter Type

DUCKBAE's 2024. 9. 8. 00:48

positional arguments (위치 인자)

함수를 호출할 때 인자의 위치에 따라 값을 전달하는 방식이다. 함수 정의에서 인자의 순서대로 값을 전달해야 하며, 함수 호출 시 가장 일반적인 방법이다.

def greet(name, greeting):
	print(f"{greeting}, {name}!")

greet("Alice", "Hello")

 

keyword arguments (키워드 인자)

함수를 호출할 때 인자 이름을 명시하여 값을 전달하는 방식으로 name=value 형태로 사용한다.
인자 순서를 바꾸더라도 문제가 발생하지 않는다.

def greet(name, greeting="hello"):
	print(f"{greeting}, {name}!")

greet(name="Alice", greeting="Hi")
greet(greeting="Hey", name="Bob")

 

variable positional arguments (가변 위치 인자)

함수에서 가변 개수의 위치 인자를 받기 위한 방식으로, *args 형태로 사용한다.
튜플 형태로 전달한다.

def sum_all(*args):
    return sum(args)

result = sum_all(1, 2, 3, 4, 5)  # 위치 인자 여러 개 전달
print(result)  # 출력: 15

 

variable keyword arguments (가변 키워드 인자)

함수에서 임의의 개수의 키워드 인자를 받기 위한 방식으로, **kwargs 형태로 사용한다.
딕셔너리 형태로 전달한다.

  • name=value 형태로 인자를 전달하며, 순서는 상관 없다.
def print_info(**kwargs):
    for key, value in kwargs.items():
        print(f"{key}: {value}")

print_info(name="Alice", age=30, job="Engineer")
# 출력:
# name: Alice
# age: 30
# job: Engineer

 

positional only arguments (위치 전용 인자)

python 3.8 부터 함수의 인자들이 오직 위치로만 전달되도록 제한할 수 있는 기능이다.
사용자가 의도하지 않게 키워드 인자를 통해 함수를 호출하는 것을 방지할 수 있다.

 

사용 방법
/ 문자를 사용하여 함수의 인자를 위치 전용으로 정의하는데, 해당 기호 앞에 위치한 인자들은 위치로만 전달할 수 있다.

 

예제

# a, b 는 위치 전용 인자이다.
def func(a, b, /, c, d):
	print(a, b, c, d)

아래와 같은 방식으로만 위 함수를 호출할 수 있다.
func(1, 2, c=3, d=4)
func(1, 2, 3, 4)

아래와 같이 호출하면 오류가 발생한다.
a=1, b=2로 인자를 키워드 방식으로 전달하려고 했기 때문이다. a, b는 오직 위치로만 전달할 수 있다.
func(a=1, b=2, c=3, d=4)

 

keyword only arguments (키워드 전용 인자)

함수의 인자가 오직 키워드 인자로만 전달되도록 제한할 수 있는 기능이다.
함수의 인터페이스를 더 명확하게 하고, 인자 전달 방식을 명시적으로 제어할 수 있다.

 

사용 방법
* 문자를 사용하여 키워드 인자를 정의하는데, 해당 기호 이후에 정의된 인자들은 키워드로만 전달할 수 있다.

 

예제

# c, d 는 키워드 전용 인자이다.
def func(a, b, *, c, d):
	print(a, b, c, d)

아래와 같은 방식으로만 위 함수를 호출할 수 있다.
func(1, 2, c=3, d=4)

아래와 같이 호출하면 오류가 발생한다.
func(1, 2, 3, 4)

 

'Language > Python' 카테고리의 다른 글

[Python] 자료구조  (0) 2024.09.08
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함