Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
Tags
- 11382번
- 기본클래스
- 람다식
- 프로그래머스lv2
- 제네릭프로그래밍
- list comprehension
- 인프런
- 연산자오버로딩
- c++코딩테스트합격자되기
- 동적바인딩
- 참조자
- 멤버함수로구현
- 점프투파이썬
- 주피터
- 상속
- C++
- STL
- 다형성
- 백준
- python
- 코드잇
- 유도클래스
- OpenCV
- 데이터사이언스
- 코딩테스트
- OOP
- 얕은복사
- 깊은복사
- 포인터
- 스택
Archives
- Today
- Total
WjExplor Story
*args의 역할 본문
Q. 함수 매개변수를 `func(*args)` 로 받으면 복잡해지나?
A. 'func(*args)' 문법 자체가 복잡한 것은 아니지만, **어떤 상황에서 사용하느냐에 따라 코드를 더 명확하게 만들 수도 있고, 오히려 복잡하게 만들 수 있다**
`*args`의 역할
* `*args` 는 함수가 개수가 정해지지 않은 여러 개의 위치 인자(positional arguments)를 받을 때 사용한다.
만약 함수가 정확히 두 개의 매개 변수를 받아야 한다면,
def name_func(param1, param2):
처럼 매개변수 이름을 명시하는 것이 훨씬 좋다.
*args 을 사용하면 가독성 저하 이유로 복잡해지거나 덜 명확해질 수 있다.
* 가독성 저하 : def greet(*args): 라고 하면, args[0] 이 이름이고 args[1] 이 메시지라는 것을 코드 내부를 봐야만 알 수 있다.
def greet(name, msg) : 라고 선언하면 함수 선언만 봐도 어떤 인자를 받는지 명확하다.
*args 는 함수가 받아야 할 인자의 개수가 미리 정해져 있지 않고, 몇 개가 들어올지 모를 때 매우 유용하다.
예제
문제 10. 함수와 기본값
함수를 작성하세요.
이름: greet
매개변수: name, msg="안녕하세요"
출력: "안녕하세요, name!"
def name_func(name, msg='안녕하세요'):
print(f'{msg}, {name}!')
name_func('철수')
name_func('지은', '반갑습니다')'Python > Python : Code Study' 카테고리의 다른 글
| 두 리스트를 이용해 딕셔너리 생성 (0) | 2025.09.25 |
|---|---|
| 리스트 중첩 (0) | 2025.09.25 |
| 파이썬 리스트 컴프리헨션 (List Comprehension) (0) | 2025.09.25 |
| [Microsoft 공식 문서] 초보자를 위한 Python Git 링크 (0) | 2025.09.24 |
| [점프투파이썬] 06-6 하위 디렉터리 검색하기 (1) | 2025.09.20 |