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
แทนที่จะตรงกันข้าม
นั่นหมายความว่ามันแตกต่างจากบรรทัดฐานของวิธีการจากบนลงล่างในภาษาการเขียนโปรแกรมส่วนใหญ่? สำหรับมัณฑนากรกรณีนี้เท่านั้นหรือ หรือว่าฉันผิด?