> 전역변수
함수 밖에 선언된 변수, 어디서나 사용 가능, 함수 안에서 수정 불가
오른쪽의 경우, 함수 안에서 num_out= 20 을 했으나, 이는 기존의 10을 수정한 것이 아니라 함수 내부에서만 유효한 지역변수 num_out을 새로 만든 것이다.
> 지역변수
함수 안에 선언된 변수, 함수 안에서만 사용 가능
오른쪽처럼 함수밖에서 num_in 할 경우 정의 안됐음을 볼 수 있다.
> global 키워드
함수 안에서 전역변수 값 수정 가능
global로 함수밖에 있는 num_out이 수정 됨
totalvisit가 함수밖에서 선언이 되었으므로 누적을 해주려면 global 로 함수내부에서 변형해줌
> 중첩함수
함수 안에 또다른 함수가 있는 형태
def out_function():
print('out_function called!!')
def in_function():
print('in_function called!!')
in_function()
in_function() <- 이거 안된다.
out_function() <- 얘는 됨
내부함수를 함수 밖에서 호출할 수 없다.(인펑션을 밖에서 부를 수 없다.)
> lambda 키워드
사용하면 함수선언 간단하게 가능
연습
> 모듈
함수가 선언되어 있는 파이썬 파일 (like random)
내부모듈(파이썬과 함께설치) / 외부모듈(별도 설치) / 사용자 모듈(사용자가 직접 생성)
모듈 예)
> 모듈 제작
파이썬 파일을 만들고, 확장자(.py) 제외한 이름으로 import 해오면 사용 가능
글자 거꾸로 쓰기
for i in str 은 str 에 들어간 글을 한글자씩 불러냄(ex.hello면 'h','e' 이런식)
그걸 reversedString에 한글자씩 넣으면서 h, eh, leh 이렇게 나옴
그렇게 모듈을 만들고, 유저인풋으로 문자열 넣어서 함수 적용
모듈 사용
import, as, from~as 사용
import로 모듈 임포트, as로 모듈이름 단축 가능
ex)
import calculator as cal
cal.add(10,20)
from~as로 모듈의 특정 기능만 사용 가능
from calculator import add
from calculator import sub
add(10,20)
sub(10,20)