Contents

조회 수 1687 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

python 코드를 보다보면

*args, **kwargs 를 심심치 않게 본다.

그냥 막연하게 "어떤 파라미터를 몇개를 받을지 모르는 경우 사용한다" 라고 알고 있었지만

자세히 설명한 예 가 있어서 소개한다.



*args

- 파라미터를 몇개를 받을지 모르는 경우 사용한다. args 는 튜플 형태로 전달된다.

예)

def print_param(*args):
    print args
    for p in args:
        print p

print_param('a', 'b', 'c', 'd')
#('a', 'b', 'c', 'd')
#a
#b
#c
#d


**kwargs

- 파라미터 명을 같이 보낼 수 있다. kwargs는 딕셔너리 형태로 전달된다.

def print_param2(**kwargs):
    print kwargs
    print kwargs.keys()
    print kwargs.values()

    for name, value in kwargs.items():
        print "%s : %s" % (name, value)

print_param2(first = 'a', second = 'b', third = 'c', fourth = 'd')

#{'second': 'b', 'fourth': 'd', 'third': 'c', 'first': 'a'}
#['second', 'fourth', 'third', 'first']
#['b', 'd', 'c', 'a']
#second : b
#fourth : d
#third : c
#first : a



그러면 두개를 같이 쓰는 경우는??

def print_param3(*args, **kwargs):
    print args
    print kwargs

print_param3('a', 'b')
#('a', 'b')
#{}

print_param3(third = 'c', fourth = 'd')
#()
#{'fourth': 'd', 'third': 'c'}

print_param3('a', 'b', third = 'c', fourth = 'd')
#('a', 'b')
#{'fourth': 'd', 'third': 'c'}



응용 해 보자

def print_param4(a, b, c):
    print a, b, c

p = ['a', 'b', 'c']
print_param4(*p)
#a b c

p2 = {'c' : '1', 'a' : '2', 'b' : '3'}
print_param4(**p2)
#2 3 1


[출처] https://www.geeksforgeeks.org/args-kwargs-python/

[참고] https://stackoverflow.com/questions/3394835/use-of-args-and-kwargs



?

  1. [python] 파라미터 앞에 *, ** 의 의미? (*args, **kwargs)

    Date2019.11.22 CategoryDevelop Byhooni Views1687
    Read More
  2. [ios] Swift 4 Singleton inheritance

    Date2018.10.31 CategoryDevelop Byhooni Views1686
    Read More
  3. [ios] 스크린 캡쳐 (전원버튼 + 홈버튼) 호출 알아내기

    Date2014.11.19 CategoryDevelop Byhooni Views1650
    Read More
  4. [ios] binary를 C코드로 변환

    Date2015.01.03 CategoryDevelop Byhooni Views1642
    Read More
  5. [android] 레이아웃 사이즈 변경 (동적; programmatically)

    Date2016.11.07 CategoryDevelop Byhooni Views1604
    Read More
  6. How to Test SMTP AUTH using Telnet

    Date2018.04.05 CategoryDevelop Byhooni Views1582
    Read More
  7. What is difference between Get, Post, Put and Delete?

    Date2018.02.28 CategoryDevelop Byhooni Views1562
    Read More
  8. [swift] popToRoot 모달뷰, 네비게이션컨트롤러 한꺼번에 닫기

    Date2021.01.29 CategoryDevelop Byhooni Views1555
    Read More
  9. [ios] Swift 4 String, Date, DateFormatter 예제

    Date2018.10.18 CategoryDevelop Byhooni Views1505
    Read More
  10. [ios] How to set up clang formatter

    Date2015.09.17 CategoryDevelop Byhooni Views1468
    Read More
  11. [android] 간단한 SQLIite 예제

    Date2017.06.14 CategoryDevelop Byhooni Views1455
    Read More
  12. [php] 한글 문자열 자르기 (utf-8)

    Date2015.11.10 CategoryDevelop Byhooni Views1453
    Read More
Board Pagination Prev 1 ... 56 57 58 59 60 61 62 63 64 65 ... 71 Next
/ 71