쫑쫑JJONG
끄적끄적 오후5시37분
쫑쫑JJONG
전체 방문자
오늘
어제
  • 분류 전체보기 (198)
    • Paper Reading (5)
    • Math (5)
    • Data Science (13)
      • SQL (12)
      • Data Analyst (1)
    • AI Track (32)
      • CV (21)
      • CV Remind (2)
      • NLP (1)
      • AI Basic (8)
    • Python (1)
      • Basic (8)
      • Application (5)
    • Robotics (31)
      • ROS (15)
      • Collabot_proj (16)
    • NaverBoost Camp 4기 (45)
      • 부스트일지 (13)
      • [P stage] Image Classificat.. (4)
      • [P stage] Object Detection (12)
      • [P stage] Semantic Segmenta.. (6)
      • [P stage] Final Project (5)
      • CV (1)
      • DL BASIC (4)
    • Excel (1)
    • Git (8)
      • Git (8)
    • Network (3)
      • 통신 (3)
    • 코테준비 (14)
      • Programmers (11)
      • 기타 (3)
    • 환경설정 (19)
    • etc (7)
      • 활동 (2)
      • TIP (3)
      • 잡동사니 (2)
    • 금융관련 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • 포트폴리오

인기 글

태그

  • N
  • Data Scraping
  • GIT
  • segmentation
  • collabot
  • 논문분석
  • NLP
  • 이고잉
  • CV
  • Arduino
  • SQL
  • robotics
  • Confusion Matrix
  • ros
  • diffusion
  • 환경설정
  • mmdetection
  • python
  • error
  • transformer
  • Monte Carlo Sampling

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
쫑쫑JJONG

끄적끄적 오후5시37분

Python/Basic

Python에서의 *args 와 **kwargs

2023. 4. 4. 17:40
728x90

처음에는 포인터 인줄 알고 쫄았지만 Python에서는 포인터의 개념으로 사용되지는 않는다

 

 

*args

*args는 arguments 의 줄인 말이고 통상적으로 *arg를 많이 사용하지만

굳이 변수명을 arg를 할 필요는 없다

 

*args 는 여러개의 인자를 함수로 받고자 할 때 사용한다

 

def myclass(*students):
    print(students)
    print("The first student name is : ", students[0])
    print("The last student name is : ", students[-1])


myclass('철수','영희','바둑이')

>>> ('철수', '영희', '바둑이')
>>> The first student name is :  철수
>>> The last student name is :  바둑이

이런 식으로 입력값이 몇개가 들어올지 모를 때 사용하고

 

저장되는 방식은 argument에 Tuple 형식으로 저장이 된다

 

 

 

*kwargs

kwargs 는 keyword argument의 줄인 말로

키워드 = 특정 값 형태로 함수를 호출 할 수 있다

마찬가지로 굳이 kwargs를 사용할 필요는 없지만

arg 와 kwargs 사용하는 것이 일반적이므로 추천한다

 

def myclass(**kwargs):
    print(kwargs)
    for number, name in kwargs.items():
        print("학번 : 2023{1} , 학생이름 : {0} ".format(number,name))

myclass(홍길동="1111",철수 = '2222',바둑이 = '3333')


>>> {'홍길동': '1111', '철수': '2222', '바둑이': '3333'}
>>> 학번 : 20231111 , 학생이름 : 홍길동 
>>> 학번 : 20232222 , 학생이름 : 철수 
>>> 학번 : 20233333 , 학생이름 : 바둑이

 

 

이 두개를 같이 쓴다면 다음과 같은 것을 자유롭게 할 수 있다

def myclass(*arg,**kwargs):
    print(arg[0])
    for number, name in kwargs.items():
        print("학번 : 2023{1} , 학생이름 : {0} ".format(number,name))

myclass("우리 반 아이들을 소개합니다 ",홍길동="1111",철수 = '2222',바둑이 = '3333')

 

728x90
저작자표시 비영리 변경금지 (새창열림)

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

[Python] Class 와 OOP에 관하여  (0) 2023.04.05
Python Decorator 에 관하여  (0) 2023.04.04
[AI for Python] 행렬의 곱셈 정리  (0) 2022.10.04
[Python Basic] Python 에 수식표현(Sympy)  (0) 2022.10.03
[Python Basic]조건문과 반복문  (0) 2022.09.23
    'Python/Basic' 카테고리의 다른 글
    • [Python] Class 와 OOP에 관하여
    • Python Decorator 에 관하여
    • [AI for Python] 행렬의 곱셈 정리
    • [Python Basic] Python 에 수식표현(Sympy)
    쫑쫑JJONG
    쫑쫑JJONG
    connect : tmdwhd619@naver.com

    티스토리툴바