[SK shiedlus Rookies 23]Python(3-2)_24.10.17

박소민·2024년 10월 27일

Python

목록 보기
7/23

함수.종류

<< 함수 주석 >>

  • 내용: 함수 목적, 매개변수, 리턴값
  • 형식
    • 한줄주석 #
    • 여러줄 주석 '''...''', """..."""
  • 애너테이션 활용
    : 매개변수, 반환값 등 제공 -> 타입 표현 가능

Ex.01Ex.01-A : 실제 함수 작성시 자동완성으로 제공Ex.01-B : 애너테이션 활용

scope (범위)

: 변수가 함수 내외에 존재할때 사용 범위 체크

  • 지역변수(local): 함수 내부에서 생성된 변수
  • 전역변수(global): 함수 밖에서 정의된 변수
    -통상적으로 맨 앞줄에 위치한 변수
    -모든 영역에서 사용 가능함 (단, 추가 표현 필요)
  • 논-지역변수(non-local)
    -고급/내부 함수에서 등장

Ex.01-A: 전역변수Ex.01-B: 전역 + 지역변수Ex.01-C: 키워드global ➤ 함수 내부에서 전역변수 업데이트

고급함수

애너테이션 ( annotation )

  • 특징 (3.6 ver.~ 추가)

    • 파이썬 : 타입 추론형 ➔ 값이 할당될때, 타입이 결정.
    • IF. 타입을 모른다 = Any (뭐든 상관X)
    • 애너테이션 활용
      -변수, 함수의 구성원 등에 타입을 가이드 할 수 있다.
      ↳ So. 강제성 x = 다른 타입의 값이 와도 오류 x
      (❗❗ 단, 내부적인 로직에서 오류 발생 가능성 존재)

변수 애너테이션

함수 애너테이션

: (변수:type)-> 리턴값의 타입

  • Ex.01 > 기본형
                 🔽🔽🔽
  • Ex.01-A > 함수 애너테이션

내부함수

: 함수 내부에 존재하는 함수

  • 목적
    • 중요 기능 은닉 하는 전략
    • 데코(커)레이터 기능 구현 을 위해

클로저, 순수함수(pure function)

  • 순수함수(pure function)
    -전역변수 사용X
    -단독적으로 특정기능 완료하는 함수
    def add( x, y)
       return x + y
  • 클로저 "조건"
    • outer() 함수 is 순수함수
    • 내부함수가 존재.
    • 내부함수 내에서, outer 함수의 정의된 변수(지역변수)를 반드시 참조
      넌로컬변수를 엑세스 하기.
    • outer 함수의 반환값은 내부함수
         ↪️ (+) 변수 cnt = outer_pure()에게는 지역변수 O, inner()에게는 지역 변수 X
                 관점에 따라 다르기에 "non-local 변수"
                  

Ex.01-A > 키워드 nonlocal ➤ 함수 내부에서 non-local변수 업데이트

데코(커)레이터

: 클로저 조건을 만족하는 함수로 표현

  • when 웹프로그래밍 할때, 계속 등장
  • << 특징 >>
    • 목적 : 기본 함수에 특정기능을 공통적으로 적용wt
    • Ex. 웹프로그램에서 주로 사용: django, flask, fastapi ...
  • 형식
   @고차함수
   def 일반함수():
      statements
      [return ..]

Ex.01-A

                              🔽🔽🔽

Ex.01-B > 데코레이터 적용Ex.01-C > 인자전달

0개의 댓글