데코레이터는 Python의 중요한 부분입니다. 간단히 말하면 다른 기능의 기능을 수정하는 기능입니다. 코드를 더 짧고 더 파이썬적으로 만드는 데 도움이 됩니다.
파이썬의 데코레이터를 이해하려면 먼저 클로저의 개념을 이해해야 합니다. (추천 학습: Python 동영상 튜토리얼)
컴퓨터 과학에서 클로저(영어: Closure)는 어휘 클로저(Lexical Closure) 또는 함수 클로저(function closures)라고도 알려져 있으며 자유 변수 함수를 의미합니다. 참조된 자유 변수는 그것이 생성된 환경을 떠난 후에도 함수에 남아 있습니다.
Decorator
일반적인 데코레이터는 일반적으로 다음과 같습니다.
import functools def log(func): @functools.wraps(func) def wrapper(*args, **kwargs): print('call %s():' % func.__name__) print('args = {}'.format(*args)) return func(*args, **kwargs) return wrapper
이것은 메소드 이름과 해당 매개변수를 인쇄하는 데코레이터를 정의합니다.
호출하려면 처음에 @를 사용하세요:
@logdef test(p): print(test.__name__ + " param: " + p) test("I'm a param")
출력:
call test(): args = I'm a param test param: I'm a param
데코레이터를 사용할 때 @ 구문이 사용되는데 조금 헷갈립니다. 사실 데코레이터는 단지 메소드일 뿐이며 다음 호출 메소드와 다르지 않습니다.
def test(p): print(test.__name__ + " param: " + p) wrapper = log(test) wrapper("I'm a param")
@구문은 단지 함수를 데코레이터 함수에 전달하는 것일 뿐, 마법 같은 것은 없습니다.
파이썬에서 제공하는 데코레이터인 @functools.wraps(func)를 주목할 가치가 있습니다. 원래 함수의 메타 정보를 데코레이터의 func 함수에 복사할 수 있습니다. 함수의 메타정보에는 독스트링, 이름, 매개변수 목록 등이 포함됩니다.
@functools.wraps(func)를 제거하려고 하면 test.__name__의 출력이 래퍼가 되는 것을 확인할 수 있습니다.
더 많은 Python 관련 기술 기사를 보려면 Python Tutorial 칼럼을 방문하여 알아보세요!
위 내용은 파이썬 데코레이터는 무엇으로 시작하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于Seaborn的相关问题,包括了数据可视化处理的散点图、折线图、条形图等等内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于进程池与进程锁的相关问题,包括进程池的创建模块,进程池函数等等内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于简历筛选的相关问题,包括了定义 ReadDoc 类用以读取 word 文件以及定义 search_word 函数用以筛选的相关内容,下面一起来看一下,希望对大家有帮助。

VS Code的确是一款非常热门、有强大用户基础的一款开发工具。本文给大家介绍一下10款高效、好用的插件,能够让原本单薄的VS Code如虎添翼,开发效率顿时提升到一个新的阶段。

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于数据类型之字符串、数字的相关问题,下面一起来看一下,希望对大家有帮助。

pythn的中文意思是巨蟒、蟒蛇。1989年圣诞节期间,Guido van Rossum在家闲的没事干,为了跟朋友庆祝圣诞节,决定发明一种全新的脚本语言。他很喜欢一个肥皂剧叫Monty Python,所以便把这门语言叫做python。

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于numpy模块的相关问题,Numpy是Numerical Python extensions的缩写,字面意思是Python数值计算扩展,下面一起来看一下,希望对大家有帮助。


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

맨티스BT
Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)
