Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

วิธีสร้าง Decorator Chain ( שרשרת dekorators) ใน Python

Decorators เป็น "wrappers" รันโค้ดก่อน/หลังฟังก์ชันที่ decorate โดยไม่แก้ฟังก์ชันต้นฉบับ สามารถ chain หลายตัวได้

ตัวอย่าง

def makebold(fn):
    def wrapped():
        return "" + fn() + ""
    return wrapped

def makeitalic(fn):
    def wrapped():
        return "" + fn() + ""
    return wrapped

@makebold
@makeitalic
def hello():
    return "hello world"

print(hello())

ผลลัพธ์

<b><i>hello world</i></b>

ลำดับการทำงาน: @makebold @makeitalic เทียบเท่า makebold(makeitalic(hello)) decorator ใกล้ฟังก์ชันสุดทำงานก่อน