«python-decorators» 태그된 질문

Python에서 데코레이터는 특수 구문을 사용하여 함수, 메서드 또는 클래스를 편리하게 변경하는 함수입니다. 데코레이터는 데코 레이트되는 소스 코드를 변경하지 않고 동적으로 기능을 변경합니다.


17
함수 데코레이터 체인을 만드는 방법?
파이썬에서 다음을 수행하는 데코레이터 두 개를 어떻게 만들 수 있습니까? @makebold @makeitalic def say(): return "Hello" ... 반환해야합니다 : "<b><i>Hello</i></b>" HTML실제 응용 프로그램 에서이 방법 을 만들려고하지는 않습니다 . 데코레이터와 데코레이터 체인이 어떻게 작동하는지 이해하려고합니다.

14
@property 데코레이터는 어떻게 작동합니까?
내장 함수의 property작동 방식을 이해하고 싶습니다 . 나를 혼란스럽게 property하는 것은 데코레이터로도 사용할 수 있지만 데코레이터로 사용될 때가 아니라 내장 함수로 사용될 때만 인수를 취한다는 것입니다. 이 예제는 문서 에서 가져온 것입니다 . class C(object): def __init__(self): self._x = None def getx(self): return self._x def setx(self, value): self._x = value …



5
자기 주장이있는 클래스 메소드 데코레이터?
클래스 메소드에서 클래스 필드를 데코레이터에게 인수로 전달하는 방법은 무엇입니까? 내가하고 싶은 것은 다음과 같습니다. class Client(object): def __init__(self, url): self.url = url @check_authorization("some_attr", self.url) def get(self): do_work() self.url데코레이터 에게 전달 하기 위해 자아가 존재하지 않는다고 불평합니다 . 이 주위에 방법이 있습니까?

10
파이썬에서 속성 기능을 사용하는 방법에 대한 실제 예?
@property파이썬 에서 사용하는 방법에 관심이 있습니다 . 나는 파이썬 문서를 읽었으며 그 의견은 장난감 코드 일뿐입니다. class C(object): def __init__(self): self._x = None @property def x(self): """I'm the 'x' property.""" return self._x @x.setter def x(self, value): self._x = value @x.deleter def x(self): del self._x _x속성 데코레이터로 채워서 어떤 이점을 얻을 …

5
파이썬 데코레이터에 추가 인수를 어떻게 전달합니까?
아래와 같은 데코레이터가 있습니다. def myDecorator(test_func): return callSomeWrapper(test_func) def callSomeWrapper(test_func): return test_func @myDecorator def someFunc(): print 'hello' 이 데코레이터를 향상시켜 아래와 같은 다른 주장을 받아들이고 싶습니다. def myDecorator(test_func,logIt): if logIt: print "Calling Function: " + test_func.__name__ return callSomeWrapper(test_func) @myDecorator(False) def someFunc(): print 'Hello' 하지만이 코드는 오류를 제공합니다. TypeError : myDecorator …

1
데코레이터 실행 순서
def make_bold(fn): return lambda : "<b>" + fn() + "</b>" def make_italic(fn): return lambda : "<i>" + fn() + "</i>" @make_bold @make_italic def hello(): return "hello world" helloHTML = hello() 산출: "<b><i>hello world</i></b>" 나는 대략적으로 데코레이터에 대해 이해하고 대부분의 예제에서 데코레이터 중 하나와 어떻게 작동하는지 이해합니다. 이 예에는 2 개가 …

5
데코레이터로 파이썬 함수 정의를 우회하는 방법은 무엇입니까?
전역 설정 (예 : OS)을 기반으로 Python 함수 정의를 제어 할 수 있는지 알고 싶습니다. 예: @linux def my_callback(*args, **kwargs): print("Doing something @ Linux") return @windows def my_callback(*args, **kwargs): print("Doing something @ Windows") return 그런 다음 누군가 Linux를 사용하는 경우 첫 번째 정의 my_callback가 사용되며 두 번째 정의는 자동으로 무시됩니다. …
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.