total_activ

파이썬 백엔드와 웹기술 (flask/플라스크와 백엔드 기본) 1-3 본문

파이썬 백엔드와 웹기술 공부

파이썬 백엔드와 웹기술 (flask/플라스크와 백엔드 기본) 1-3

INFOO 2022. 1. 17. 23:26

Closure function

 - 함수와 해당 함수가 가지고 있는 데이터를 함께 복사, 저장해서 별도 함수로 활용하는 기법으로 First-class 함수와 동일

 

def outer_function(num):

   def inner_func();

      print (num)

      return '안녕'

   return inner_func

closure_func = outer_func(10) <-- First-Class function

closure_func() <-- Closure 호출

 

def html_creator(tag) :

   def text_wrapper(msg);

      print ('<{0}>{1}</{0}>'.format(tag, msg)

   return text_wrapper

h1_html_creator = html_creator('h1')

h1_html_creator ('말')

 

데코레이터 (Decorator)

 - 함수 앞뒤에 기능을 추가해서 손쉽게 함수를 활용할 수 있는 기법

 - Closure function을 활용

 

def daetime_decorator(func):  <-- 데코레이터 이름, func 가 이 함수 안에 넣을 함수가 됨

   def wrapper():

      print ('time' + str(datatime.datatime.now()))

      func()

      print (datetime.datetime.now())

   return wrapper  <-- closure 함수로 만든다

 

@datetime_decorator

def logger_login_David() :

   print("David login")

@datetime_decorator

def logger_login_anthony() :

   print("Anthony login")

 

logger_login_david()

 

파라 미터가 잇는 함수에 Decorator 적용하기

def outer_func (func) :

   def inner_func(digit1, digit2) : 

      함수 내용~

      function(digit1, digit2) 

   return inner_func

 

@outer_func

def divide(digit1, digit2) :

   print (digit1 / digit2) 

 

divide(4, 2)

 

파라미터와 관계없이 모든 함수에 적용 가능한 Decorator 만들기

 - 파라미터는 어떤 형태이든 결구 (args, **kwargs)로 표현 가능 -->위에 예시에서 digit1, digit2) 의 부분을 (args, **kwargs)으로 바꾸면 됨

 

 

[내용 및 사진 출처]

가장 빠른 풀스택: 파이썬 백엔드와 웹기술 부트캠프 (flask/플라스크와 백엔드 기본) [풀스택 Part1]

가장 빠른 풀스택: 파이썬 백엔드와 웹기술 부트캠프 (flask/플라스크와 백엔드 기본) [풀스택 Part1] (2021 업데이트) 대시보드 - 인프런 | 강의 (inflearn.com)

 

가장 빠른 풀스택: 파이썬 백엔드와 웹기술 부트캠프 (flask/플라스크와 백엔드 기본) [풀스택 Part1

현업에서 실제 웹서비스를 개발한 경험을 기반으로, 입문자를 위한 실제 상용화도 가능한 수준의 웹과 앱서비스를 개발하는 것을 목표로 하는 풀스택 시리즈 강의입니다. 이를 위한 첫 출발(part

www.inflearn.com