第四重境界:元婴期

第十五章:法宝附魔 (Decorators)

← 上一章 | 返回宗门地图
神仙
姐姐
Py 师弟,你的 "斩击" 招式虽然厉害,但是太朴素了。
能不能在出招前加个 "闪光特效",出招后加个 "收剑POSE"?
但是不要改动原来的招式心法哦~
路人
Py
啊?不改心法怎么加特效?
难道是传说中的... 附魔术 (Decorator)

1. 何为附魔? (What is a Decorator)

装饰器 (Decorator) 就像是给法宝附魔。它可以在不改变原函数代码的情况下,增加额外的功能。

标志就是那个神奇的 @ 符号。

2. 施展附魔 (Using Decorators)

# 定义一个附魔卷轴 (装饰器)
def buff(func):
    def wrapper():
        print("✨ 圣光护体!(特效开启)")
        func()
        print("😎 帅气收招!(特效结束)")
    return wrapper

# 给招式附魔
@buff
def attack():
    print("⚔️ 斩击!")

# 调用招式
attack()

运行结果:

✨ 圣光护体!(特效开启)
⚔️ 斩击!
😎 帅气收招!(特效结束)

3. 万物皆可附魔

你可以给任何函数附魔:记录日志、计算时间、权限验证...

@login_required  # 只有登录弟子才能查看
def view_secret_scroll():
    print("查看禁地卷轴...")

🎮 试练:加点料

任务:虽然不能在这里定义复杂的装饰器,但你可以试着模拟一下。
定义一个函数 say() 打印 "Hello",然后在调用它前后手动打印 "Start" 和 "End"。

附魔台已就绪...
请放置法宝...
>>>
下一章:宗门秘法 →