이와 비슷한?
def multicall(*functions):
def call_functions(*args, **kwds):
for function in functions:
function(*args, **kwds)
return call_functions
그리고 당신은 결과를 집계 할 경우 :
def multicall(*functions):
def call_functions(*args, **kwds):
return [function(*args, **kwds) for function in functions]
return call_functions
편집
장식이 제안되었다; 이 경우 그 결과는 다음과 같습니다
def appendcalls(*functions):
def decorator(decorated_function):
all_functions = [decorated_function] + list(functions)
def call_functions(*args, **kwds):
for function in all_functions:
function(*args, **kwds)
return call_functions
return decorator
LOG = logging.getLogger(__name__)
@appendcalls(LOG.info)
def info(fmt, *args):
print fmt % args
info('Hello %s', 'guido')
appendcalls()
은 장식 기능 후에 호출되는 기능의 수를합니다. 원하는 반환 값에 따라 데코레이터를 다르게 구현할 수 있습니다. 데코 레이팅 된 함수의 원본, 모든 함수 결과의 목록 또는 전혀 아예 없습니다.
? 나는 콘솔에 쓰는 별도의 모듈 ('ui.py'라고 부름)을 작성했기 때문에 로깅을 사용하여 로그를 남겼다. 종종 콘솔에 인쇄 할 메시지도 기록됩니다. –
이렇게하기 위해 로깅 모듈을 구성 할 수 있습니다. 해당 수준의 여러 핸들러 및/또는 로거를 사용하십시오. –
로깅 모듈은 텍스트 UI 용으로 설계되지 않았으며 사용자와 상호 작용합니다. 예 : write_to_terminal은 이미 표시된 진행 막대와 상호 작용할 수 있으며 심지어 숨길 수도 있습니다. (그냥 bzr 않습니다) –