python parameter

yoon__0_0·2024년 6월 17일
0

여러 파라미터 를 받게 될때 args, kwargs 를 사용함

args

  • *args를 통해서 뒤에 파라미터를 받아옴
  • *args는 순서가 중요하기 때문에 맨 뒤에 와야하는 파라미터.
  • 선택적 수정이 가능함
  • optional 한 변수일때 좋음
  • python 의 tuple로 받아오게 됨.
  • 사용할때 (꺼낼땐) 인덱스를 사용함
  • 단, 몇번째 인덱스가 어떤 파라미터에 대한 값인지 불분명하다는 단점이 존재하게 됨
def regist(name, sex, *args):
    print(name)
    print(sex)
    address = args[0] if len(args) > 0 else None 
    p_num = args[1] if len(args) > 1 else None 
    print(address)
    print(p_num)

위의 함수를 실행하게 된다면,

regist("윤재", "여성", "seoul") 

# 결과  
윤재
여성
seoul
None

regist("윤재", "여성", "seoul", "01012345678")

# 결과
윤재
여성
seoul
01012345678

kwargs

  • dict 형태로 받아올 수 있음.
  • **kwargs 의 형태로 받아옴.
def regist(name, sex, **kwargs): 
    print(name)
    print(sex)
    address = kwargs.get('address') or None 
    p_num = kwargs.get('p_num') or None 
    print(address)
    print(p_num)
  • 함수 실행해보기
regist('kim','male',p_num='010')
# 결과
kim
male
None
010

regist('kim','male',address='seoul',p_num='010')
# 결과
kim
male
seoul
010

args, kwargs 같이쓰기

  • 두개를 같이 쓸수 있지만, args가 먼저, kwargs가 뒤에 정의 되어야만 함.
  • 근데 보통 kwargs만 사용하는걸 권장
def regist(name, sex, *args, **kwargs): 
    print(name)
    print(sex)
    print(args)
    print(kwargs)
    

실행해보기


regist('kim','male', 'seoul','010') 
#결과
kim
male
('seoul', '010')
{}

regist('kim','male', 'seoul',p_num='010') 
#결과
kim
male
('seoul',)
{'p_num': '010'}

regist('kim','male', address='seoul',p_num='010')
# 결과
kim
male
()
{'address': 'seoul', 'p_num': '010'}
profile
신윤재입니다

0개의 댓글

관련 채용 정보