티스토리 뷰
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
링크
TAG
- Red-Black Tree
- 정적변수
- 고정 세션
- 다중화
- 자동구성
- Sticky Session
- nginx
- 추상클래스
- 인스턴스변수
- Security
- java
- Spring
- 오블완
- AutoConfiguration
- fail-fast
- 티스토리챌린지
- object
- syncronized
- Hash
- nosql
- fail-safe
- HashSet
- spring boot
- HashMap
- JPA
- 인터페이스
- Load Balancer
- 로드 밸런서
- Caching
- @conditional
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함