[Python] 함수

[Python] 함수

728x90

def func(a, b, c, d): print(a, b, c, d)

위치 인자

값을 순서대로 대응되는 매개변수에 복사

대응되는 매개변수에 복사 각 위치의 의미를 알아야 한다

func('py', 'thon', 'Ja', 'va')

키워드 인자

위치 인자의 혼동을 피하기 위해 매개변수에 상응하는 이름을 인자에 지정

함수의 정의와 다른 순서로 인자 지정 가능

위치 인자와 같이 쓰면, 반드시 위치 인자가 먼저 와야 한다

func(b='thon', a='py', d='va', c='Ja') func('py','thon',d='va',c='Ja')

기본 매개변수값 지정

함수를 사용할 때 인자를 보내지 않으면, 미리 설정해놓은 기본값을 사용해서 함수를 실행

def func(a, b=3): return a+b print(func(10, 10)) # 20 출력 (a=10, b=10) print(func(30)) # 33 출력 (a=30, b=3(기본값))

위치 인자 모으기 : 애스터리스크 (*)

함수의 매개변수에 애스터리스크를 사용하면, 애스터리스크 는 매개변수에서 위치 인자 변수들을 튜플로 묶는다

def print_args(*args): print(args) print_args(1, 2, 3, "Hi", "Python") ----------------------------------- (1, 2, 3, 'Hi', 'Python')

def print_args(a, b, *args): print('첫번째 a : ', a) print('두번째 b : ', b) print('*args : ', args) print_args('Python', 'Java', 'C', 'C++', 'R', 'Ruby') ------------------------------- 첫번째 a : Python 두번째 b : Java *args : ('C', 'C++', 'R', 'Ruby')

키워드 인자 모으기 : 애스터리스크 2개 (**)

키워드 인자를 딕셔너리로 묶기

인자의 이름 = key, 값 = value

*args와 **kwargs를 섞어서 쓰려면 이들을 순서대로 배치해야 한다

def print_kwargs(**kwargs): print(kwargs) print_kwargs(first = '손흥민', second = '차범근', third = '이승우') ----------------------------------------------------------- {'first': '손흥민', 'second': '차범근', 'third': '이승우'}

def print_kwargs(a, b, *args, **kwargs): print('첫번째 a : ', a) print('두번쨰 b : ', b) print('*args : ', args) print('**kwargs : ', kwargs) print_kwargs(100, 'Python', 'Java', 'Ruby', 'R', 네트워크='network', 데이터베이스 = 'Database') ------------------------------------------- 첫번째 a : 100 두번쨰 b : Python *args : ('Java', 'Ruby', 'R') **kwargs : {'네트워크': 'network', '데이터베이스': 'Database'}

docstring : 함수의 정의 (개발자의 의도)

함수 내에 개발자가 작성한 주석을 출력할 수 있다

help() 함수 or __doc__을 사용해서 주석 출력

help() : 함수 인자의 리스트, 서식화된 docstring을 출력

: 함수 인자의 리스트, 서식화된 docstring을 출력 __doc__ : 그냥 주석만 출력

def a(thing, check): ''' Prints the first argument if a second argument is true. The operations is: 1. Check whether the *second* argument is true. 2. If it is, print the *first* argument. ''' if check: print(thing) else: pass print(a(100, True)) help(a) print(a.__doc__) -------------------------------------- 100 None Help on function a in module __main__: a(thing, check) Prints the first argument if a second argument is true. The operations is: 1. Check whether the *second* argument is true. 2. If it is, print the *first* argument. Prints the first argument if a second argument is true. The operations is: 1. Check whether the *second* argument is true. 2. If it is, print the *first* argument.

익명 함수 : lambda()

단일문으로 표현되는 익명 함수

lambda 인자 : 표현식

def func(x,y): return x+y ----------------------- func = lambda x,y : x+y ----------------------- print(func(100, 200)) 300

def inc(n): return lambda x: x+n f = inc(2) # lambda x : x+2 g = inc(4) # lambda x : x+4 f(12) = 14 g(20) = 24

728x90

반응형

from http://cs-ssupport.tistory.com/181 by ccl(A) rewrite - 2021-12-19 21:27:43