본 포스팅은 패스트 캠퍼스의 [온라인] 데이터 사이언스 스쿨을 수강하며 학습한 내용을 정리한 것입니다.
데이터 사이언스 스쿨 온라인
대학교재보다 상세한 강의자료, 현직 실무자의 노하우까지 모두 얻어가세요 ! 이미 수많은 비전공자들이 데이터 사이언티스트로 커리어 전환에 성공한 바로 그 강의. 데이터 사이언스 스쿨 오프라인 정규 과정을 이제는 온라인에서 만나보세요!
www.fastcampus.co.kr
1. DocString
-
함수의 설명을 작성하는 문법
-
함수 내부에 " 설명하고자 하는 내용 " 입력 시 한 줄 작성, """ 설명하고자하는 내용 """ 입력시 여러 줄 작성 가능
-
함수명 입력 후 shift+Tab 또는 함수명?, 함수명??, help(함수명), print(함수명.__doc__)로 확인가능
-
사용예제
# docstring 한 줄작성
def echo(msg):
"echo print msg"
print(msg)
# docstring 여러 줄작성
def echo(msg):
"""
echo print msg multi Line
The operation is
1. print msg parameter
2. return msg parameter
param : msg : str
return : str
"""
print(msg)
# docstring 확인방법
echo # shift + Tab
echo?
echo??
help(echo)
print(echo.__doc__)
2. Scope 범위
-
함수 안에서 선언되는 변수와 함수 밖에서 선언되는 변수의 범위가 다름
-
global(전역), local(지역)
-
전역변수는 안쓸 수 있으면 안쓰는 것이 유리하다.
-
전역변수는 일단 메모리를 할당하기 때문이고 지역변수는 함수를 호출할 때만 메모리를 할당함
-
사용예제
#global
gv = 10
def echo():
global gv # gv를 global로 사용함, 주소값을 참조
gv = 100 # 해당 주소의 값을 100으로 변경
print(gv)
echo()
#실행결과 : 100
3. Inner Function
-
함수가 지역영역에 선언, 함수 안에 함수가 선언됨
-
inner Function은 지역영역에서만 사용가능 함.(scoper가 내부에서만 작동)
-
inner를 쓰는 것이 변수를 하나 덜 가지는 효과를 갖기에 성능상 유리함(함수도 변수선언과 마찬가지로 메모리 할당받음)
-
이해되어야 decorlator 이해 가능
-
사용예제
def outer(a,b):
def inner(c, d):
return c+d
return inner(a, b)
outer(1, 2)
#실행결과 : 3
inner(2, 3)
# 실행결과 : inner()는 지역영역에서만 사용가능 scoper가 outer() 함수 내부에서만 작동함
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-38-0febebeeb2eb> in <module>
1 # inner()는 지역영역에서만 사용가능 scoper가 outer() 함수 내부에서만 작동함
----> 2 inner(2,3)
NameError: name 'inner' is not defined
# inner Function을 global에서 호출하는 방법
def outer(a,b):
def inner(c, d):
print(1,2)
return c+d
return inner
outer(1,2)(3,4) # inner(3,4)가 실행된 것과 같음
# 실행결과
# 1 2
# 7
-
참고 : callback function
-
함수를 아규먼트 파라미터로 설정해서 사용
-
함수 호출 후 다시 함수를 호출 하는 것
-
사용예제
-
def calc(func, a, b):
# code
a **= 2
b **= 2
return func(a,b)
def plus(a, b):
return a+b
def minus(a, b):
return a-b
calc(plus, 3, 4) # 덧셈, 25
calc(minus, 3, 4) # 뺄셈, -7
4. 람다 함수
-
파라미터를 간단한 계산으로 리턴되는 함수 : 삼항연산과 비슷함
-
함수가 호출 될 때 만들어지기 때문에 저장 공간을 적게 씀
-
적게쓴다는 것은 자원을 적게쓰는 것이고 속도가 빠름
-
사용예제
# 일반 함수 선언
def plus(a, b):
return a+b
plus(1,2) #실행결과 : 3
# 람다함수 선언
plus2 = lambda a, b: a+b
plus2(1,2) #실행결과 3
# 람다함수 callback 적용
calc(lambda a, b: a+b, 3, 4) #실행결과 : 144
'Python > Tutorial' 카테고리의 다른 글
[Python] 함수(4) - Decorlator, 사용예제 (0) | 2020.04.03 |
---|---|
[Python] 함수(3) - map, filter, reduce (0) | 2020.04.03 |
[Python] 함수(1) - 기본 함수, parameter, argument, return, *args, **kwargs (0) | 2020.04.02 |
[Python] 반복문 - while, for, break, continue, list comprehention (0) | 2020.04.01 |
[Python] 조건문 - if, else, elif(else if) (0) | 2020.04.01 |