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 हैं। आउटपुट से, ऐसा लगता है कि @make_italic
पहले निष्पादित होता है , फिर @make_bold
।
क्या इसका मतलब यह है कि सजाए गए कार्यों के लिए, यह पहले फ़ंक्शन को चलाएगा फिर अन्य सज्जाकारों के लिए शीर्ष की ओर बढ़ेगा? @make_italic
पहले की तरह फिर @make_bold
, इसके विपरीत।
तो इसका मतलब है कि यह सबसे प्रोग्रामिंग लैंग में टॉप-डाउन दृष्टिकोण के मानदंड से अलग है? सिर्फ डेकोरेटर के इस मामले के लिए? या मैं गलत हूँ?