파이썬에서 다음을 수행하는 데코레이터 두 개를 어떻게 만들 수 있습니까? @makebold @makeitalic def say(): return "Hello" ... 반환해야합니다 : "<b><i>Hello</i></b>" HTML실제 응용 프로그램 에서이 방법 을 만들려고하지는 않습니다 . 데코레이터와 데코레이터 체인이 어떻게 작동하는지 이해하려고합니다.
내장 함수의 property작동 방식을 이해하고 싶습니다 . 나를 혼란스럽게 property하는 것은 데코레이터로도 사용할 수 있지만 데코레이터로 사용될 때가 아니라 내장 함수로 사용될 때만 인수를 취한다는 것입니다. 이 예제는 문서 에서 가져온 것입니다 . class C(object): def __init__(self): self._x = None def getx(self): return self._x def setx(self, value): self._x = value …
나는 같은 패턴을 본다 def __init__(self, x, y, z): ... self.x = x self.y = y self.z = z ... 더 자주, 더 많은 매개 변수가있는 경우가 많습니다. 이러한 유형의 지루한 반복성을 피할 수있는 좋은 방법이 있습니까? namedtuple대신 클래스를 상속해야합니까 ?
클래스 메소드에서 클래스 필드를 데코레이터에게 인수로 전달하는 방법은 무엇입니까? 내가하고 싶은 것은 다음과 같습니다. class Client(object): def __init__(self, url): self.url = url @check_authorization("some_attr", self.url) def get(self): do_work() self.url데코레이터 에게 전달 하기 위해 자아가 존재하지 않는다고 불평합니다 . 이 주위에 방법이 있습니까?
@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속성 데코레이터로 채워서 어떤 이점을 얻을 …
아래와 같은 데코레이터가 있습니다. 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 …
전역 설정 (예 : 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가 사용되며 두 번째 정의는 자동으로 무시됩니다. …