파이썬 장식자를 사용하여 함수를 "비활성화"할 수 있습니까? 여기에 예 : 도서관에서 옵션 (하기 matplotlib 같은) 일부 종속성이 있으며, 이들은 다음과 같습니다데코레이터로 함수 비활성화
cond = False
class C:
if cond:
def x(self): print "hi"
def y(self): print "ho"
는이
class C:
@cond
def x(self): print "hi"
def y(self): print "ho"
배경? :처럼 장식이 코드를 다시 작성하는 것이 가능 몇 가지 기능 만 필요합니다 (디버그 또는 정면). 이것은 어떤 시스템에서는 matplotlib가 다른 시스템에 설치되지 않았 음을 의미하지만 둘 다 (코어) 코드를 실행해야합니다. 그러므로 matplotlib가 설치되지 않은 경우 일부 기능을 비활성화하고 싶습니다. 그런 우아한 방법이 있습니까?
이 왜 그렇게해야? 추가 기능은 거의 자원을 차지하지 않습니다. 이 메소드는 비활성화 된 경우 속성 오류를 발생시켜야합니까? –
'disable'을 정의하십시오. 함수를 아무 작업으로 바꾸는 것을 의미하는 경우, 이것은'lambda _ _ : None'을 반환하는 데코레이터로 할 수 있습니다. – l4mpi
가장 좋은 경우에는 그들이 사라지거나 matplotlib이 설치되어 있지 않음을 기록하십시오. – Themerius