program story

파이썬-모든 내장 데코레이터는 무엇입니까?

inputbox 2020. 12. 2. 21:03
반응형

파이썬-모든 내장 데코레이터는 무엇입니까?


내가 알고 @staticmethod, @classmethod하고 @property있지만 흩어져 문서를 통해. 파이썬에 내장 된 모든 함수 데코레이터는 무엇입니까? 문서에 있습니까? 어딘가에 유지되는 최신 목록이 있습니까?


나는 그렇게 생각하지 않는다. 데코레이터는 일반적인 기능과 다르지 않으며 더 멋진 방식으로 만 호출 할 수 있습니다.

이들 모두를 찾으 려면 내장 함수 목록을 검색해 보십시오. Python 용어집 에서 볼 수 있듯이 데코레이터 구문은 구문 설탕 일뿐입니다. 다음 두 정의가 동일한 함수를 생성하기 때문입니다 (이 예제는 용어집에서 복사).

def f(...):
    ...
f = staticmethod(f)

@staticmethod
def f(...):

따라서 다른 함수를 반환하는 내장 함수를 데코레이터로 사용할 수 있습니다. 질문은-그렇게 사용하는 것이 합리적입니까? :-)

functools 모듈에는 데코레이터로 사용할 수있는 몇 가지 함수가 포함되어 있지만 요청한 내장 기능은 아닙니다.


내장되어 있지는 않지만 예제 데코레이터 라이브러리 는 매우 좋습니다.

Abgan이 말했듯 이 내장 함수 목록은 아마도보기에 가장 좋은 곳일 것입니다. 데코레이터도 클래스로 구현할 수 있기 때문에 포괄적 인 것은 아닙니다.


데코레이터는 함수를 반환 할 필요조차 없습니다. 나는 전에 사용 @atexit.register했다.


모든 데코레이터 목록 같은 것은 없습니다. 모든 기능의 목록은 없습니다. 모든 수업 목록이 없습니다.

데코레이터는 함수, 메서드 또는 클래스에서 공통적 인 측면을 정의하기위한 편리한 도구입니다. 내장 데코레이터가 있습니다. 또한 멋지고 쓸모없는 데코레이터가 많이 있습니다. 같은 방식으로 멋지고 쓸모없는 수업이 많이 있습니다.

참고 URL : https://stackoverflow.com/questions/480178/python-what-are-all-the-built-in-decorators

반응형