반응형
SMALL
함수의 형태를 만든 방법
1 2 3 4 5 | # test1 이라는 이름의 빈 함수 만들기 def test1(): pass |
test1() 뒤에 붙어 있는 콜론과
pass 앞에 있는 블록을 이용해서 함수의 형태를 잡아줘
함수 설정해서 호출하는 방법
1 2 3 4 5 6 | # test2 라는 이름의 함수 만들기 def test2(): print u"test2 함수가 호출됨" test2() |
"test2 함수가 호출됨" 이라고 설정을 해두고
test2() 를 실행해서 함수를 호출한다.
함수에 인자 전달하기
1 2 3 4 5 6 7 8 9 10 11 12 13 | # 함수의 인자를 1개 전달 받는 함수 def test3(a): print u"전달받은 내용:", a test3(u"김구라") test3(999) # 함수의 인자를 2개 전달 받는 함수 def test4(arg1,arg2): print "arg1:",arg1 print "arg2:",arg2 test4(u"하나",u"두울") |
인자를 하나, 두개 전달하는 것 이런식으로 여러개도 가능
None과 unicode Type
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 | # None 을 리턴하는 3개의 함수 def test5(): print "test5()" def test6(): print "test6()" return def test7(): print "test7()" return None # unicode type 을 리턴하는 함수 def test8(): print "test8()" return u"김구라" result1 = test5() result2 = test6() result3 = test7() result4 = test8() print "result1:", result1 print "result2:", result2 print "result3:", result3 print "result4:", result4 |
*args
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 31 | ''' 파이썬 에서는 함수에 전달받는 인자의 갯수를 자유롭게 지정할 수 있다. *args - args 는 arguments(인자들) 의 약자 - args 대신에 다른 변수명을 쓸수도 있지만 관례상 args 라고 한다. ''' def test(*args): # args 는 list type 의 read only version 인 tuple type print "args type:", type(args) print args test() test(10) test(10, 20) test(10, 20, 30) test("a", "b", "c") print "--------------------" def test2(a, *args): print a, args # test2() #오류발생 인자는 최소 1개는 전달해야 한다. test2("aaa") # "bbb" 는 a 라는 변수에 담기고 10,20,30 은 tuple 로 args 에 전달됨! test2("bbb", 10, 20, 30) |
튜플은 리스트의 read only 버전
인자로 (a, *args) 이렇게 주면
인자 하나는 무조건 전달( a ), 두개째는 줘도 되고 안줘도되는 상태임
그래서 aaa 만 전달했을때 두번째엔 빈 튜플로 결과가 출력되는 것을 볼수 있음
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | # 함수에 전달받는 인자의 default 값을 지정할수도 있다. def test(num=0): print "num:", num test() test(999) def test2(num=0, name=u"아무개", isMan=True): print "num:",num print "name:",name print "isMan:",isMan test2() print "----------" test2(1, u"김구라") print "----------" test2(2, u"해골", False) |
함수에 아무것도 전달을 안하면
def test2(요기에 적어 놓은것이 default 값인데)
default 값이 들어가는 것을 볼수 있어
keyword arguments
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 | # 문자열 format 만들기 result = u"번호:{} 이름:{} 주소:{}".format(1,u"김구라",u"노량진") print result print "---------------" ''' keyword arguments 를 함수에 전달 받을수도 있다. **kwargs - kwargs 는 keyword arguments 의 약자이다. ''' def test(**kwargs): print "kwargs type:",type(kwargs) print kwargs test() test(num=1) test(num=1, name=u"김구라", isMan=True) | cs |
키워드 아규먼트를 받고 싶을때 앞에다가 별표 2개를 붙이면 됌
형식에 맞게끔 전달을 해줘야해
*args 는 그냥 tuple 타입
**kwargs 는 dict 타입
반응형
'FrameWork > Python' 카테고리의 다른 글
파이썬 tuple (0) | 2017.08.09 |
---|---|
파이선 list (0) | 2017.08.09 |
파이썬 str Type (0) | 2017.08.08 |
파이썬 데이터타입 (Python DataType) (0) | 2017.08.08 |
이클립스에서 파이썬 주석 색깔 수정하기 (0) | 2017.08.08 |