최근에 파이썬에서 데코레이터에 대해 배우기 시작했고 다음 코드 조각이 혼란 스럽습니다. 이것이이 질문을하기에 좋은 곳인지 잘 모르겠습니다. 친절하게 나랑 벗었 어. 데코레이터의 작동 방식 이해
HANDLERS = {}
def handler_for(template):
def decorator(f):
HANDLERS[template] = f
return f
return decorator
def get_template(template, **kwargs):
#This function got me all confused. How does HANDLERS.get(template, None) works and how does it return demo_func() function?
return HANDLERS.get(template, None)
def email(template, **kwargs):
handler = get_template(template, **kwargs)
contents = handler(**kwargs)
print contents
@handler_for('demo')
def demo_func(**kwargs):
#Do something and return the String
if __name__ == "__main__":
email('demo')
는 파이썬 디버거와 디버깅을 시도했지만 나는 여전히 get_template() 함수는 함수 이름을 반환하는 장식 호출하는 방법으로 혼란스러워지고 있어요. 어떤 도움이라도 대단히 감사하겠습니다.
[이 질문] (http://stackoverflow.com/questions/26981310/decorator-with-parameters/26981383#26981383)은 찾고있는 모든 것을 설명합니까,하지 않습니까? – abarnert
@abarnert : 조사하고 있습니다. – user95025
좋아요, 거기에 내 설명이 더 좋을 것 같습니다 (플러스, 다른 사람이 다른 좋은 설명이 있습니다). 질문에 직접 관련이 없더라도 문제를 해결하기에 충분하다면이 문제를 해결하는 것이 좋습니다. 복제. 그러나 그렇지 않다면 여기 내 대답을보십시오. – abarnert