[Python]함수에 관하여

MEIN_FIGUR·2021년 7월 21일
0

Python_정리

목록 보기
3/8

함수


  • 특정한 기능을 하는 코드의 조각(묶음)
  • 재사용 하기 쉬움
  • 유지 및 보수가 쉬움
  • 매개변수parameter, 반환값return 등이 존재
    • 명시적인 return값이 없는 경우, None을 반환
    • 복수의 개체를 return하는 경우, 하나의 tuple로 반환

Arguments

  • 위치 인자(Positional Arguments)

    • 기본적으로 함수를 호출할 때 위치에 따라 함수 내에 전달
    • 가변 인자 리스트*args
      • 임의의 인자 개수로도 함수 호출 가능, 튜플로 묶여 처리
  • 키워드 인자(Keyword Arguments)

    • 직접 변수의 이름으로 특정 인자 전달
    • 키워드 인자 다음에 위치 인자를 활용할 수 없음
    • 가변 키워드 인자**kwargs
      • 임의의 키워드 인자 개수로 호출
      • 딕셔너리 형태로 묶여 처리됨
  • Default Value : 기본값을 인자에 지정, 인자가 없어도 호출할 수 있음

    • 함수를 정의할 대, 기본 인자 값을 가지는 인자 다음에 기본값이 없는 인자가 올 수 없음
def add(x, y=0):
    return x + y

add(2) #x = 2, y = 0 으로 계산

Scope

  • Local Scope
    • 함수가 만든 스코프, 함수 내부에서만 참조
    • 함수가 호출될 때 생성, 종료될 때까지 유지
  • Global Scope
    • 어디에서도 참조할 수 있음
    • 모듈이 호출된 시점 이후 또는 인터프리터가 끝날 때까지 유지
  • Built-in Scope
    • 파이썬이 실행된 이후로는 유지

LEGB Rule

  • 파이썬에서 사용되는 식별자들을 찾아가는 규칙
  • Local scope
  • Enclosed scope: 특정 함수의 상위 함수
  • Global scope
  • Built-in scope

global

  • global을 앞에 표시하면 전역 변수임을 나타낼 수 있음
    • 같은 코드 블록에서 먼저 언급되고 global을 해당 변수에 활용할 수 없음
    • 매개변수, for 루프 대상, 클래스/함수 정의 등으로 정의되지 않아야 함
  • 존재하지 않는 변수도 새로 설정 가능

nonlocal

  • 가장 가까운 스코프의 변수를 연결
    • 같은 코드 블록에서 먼저 언급되고 global을 해당 변수에 활용할 수 없음
    • 매개변수, for 루프 대상, 클래스/함수 정의 등으로 정의되지 않아야 함
  • 이미 존재하는 변수와의 연결만 가능
profile
Growing Developer

0개의 댓글