헷갈리는 python 가변 매개변수 기본개념
2021-12-20
.
programming_language_TIL(20211220)
[학습자료]
패스트캠퍼스 “한 번에 끝내는 파이썬 웹 개발 초격차 패키지 Online”를 공부하고 정리한 내용입니다.
** URL : https://fastcampus.co.kr/dev_online_pyweb
[학습내용]
- 위치 가변 매개변수(positional variable length parameter)
(1) 개수가 정해지지 않은 매개변수
(2) 매개변수 앞에 *
가 붙는다. (튜플 형태로 받아옴)
예시
def print_fruits(*args):
print(args)
for arg in args:
print(arg)
print_fruits('apple','orange','mango')
출력결과
('apple','orange','mango')
apple
orange
mango
- 키워드 가변 매개변수(keyword variable length parameter)
(1) 개수가 정해지지 않은 매개변수
(2) 매개변수 앞에 **
가 붙는다. (딕셔너리 형태로 받아옴)
예시
def comment_info(**kwargs):
print(kwargs)
for key,value in kwargs.items():
print(key+':'+value)
comment_info(name='민맨',content='열심히하자')
출력결과
{'name':'민맨','content':'열심히하자'}
name:민맨
content:열심히하자
- 일반적인 매개변수 작성하는 순서
def my_function(위치 매개변수, 기본 매개변수,위치 가변 매개변수, 키워드 매개변수(또는 기본매개변수),키워드 가변 매개변수)
특히 키워드 가변 매개변수는 항상 맨뒤에 넣어줘야 한다.
위치 가변 매개변수가 위치 매개변수 보다 앞에 있을때 예시
def post_info(*tags,title,content):
print('제목 : ',title)
print('내용 : ',content)
print('테그 : ',tags)
post_info('#파이썬','#자바','프로그래밍 언어','프로그래밍 언어는 자바와 파이썬 등 다양합니다')
출력결과 에러가 발생하는 것을 알 수 있다.
TypeError: post_info() missing 2 required keyword-only arguments: title and content
순서를 제대로 했을때 예시
def post_info(title,content,*tags):
print('제목 : ',title)
print('내용 : ',content)
print('테그 : ',tags)
post_info('프로그래밍 언어','프로그래밍 언어는 자바와 파이썬 등 다양합니다','#파이썬','#자바')
출력결과 정상적으로 실행되는 것을 알 수 있다.
제목 : 프로그래밍 언어
내용 : 다양한 매개변수를 정리합니다.
테그 : ('#파이썬','#자바')
굳이 parameter들을 뒤로 빼고 싶을때 방법 예시
def post_info(*tags,title,content):
print('제목 : ',title)
print('내용 : ',content)
print('테그 : ',tags)
post_info('#파이썬','#자바',title='프로그래밍 언어',content='프로그래밍 언어는 자바와 파이썬 등 다양합니다')
출력결과 정상적으로 실행되는 것을 알 수 있다.
제목 : 프로그래밍 언어
내용 : 다양한 매개변수를 정리합니다.
테그 : ('#파이썬','#자바')