这装饰器挺麻烦
python吧
全部回复
仅看楼主
level 5
好累....
楼主
因为整天摸鱼,楼主不得不看b站的教程,教程里讲的那个输出运行时间的还好,只有输出没有别,无非就是运行顺序变了,于是就没认真看,以为都是这样的,结果过了几天做了一道装饰器的题后就彻底懵了,问ai给的那一大堆解释根本都不想看下去,好不容易弄了个七七八八又被deepseek的"精准"带偏了,到现在为止好不容易搞懂得我有些万念俱灰了,丫的,这东西这么绕,以后该怎么学下去啊,恳请吧友们出出主意
2026年04月12日 02点04分
1
level 12
☞看破◆苍穹☜
你自己不想看下去你赖谁
2026年04月12日 03点04分
2
好累....
谁说看不下去的,硬着头皮搞懂了
2026年04月12日 14点04分
level 1
君木乐😢
装饰器就是以函数或者类做参数的函数/类,具体点好像是内层接收函数外层接收参数?不太记得了 装饰器都是闭包结构
2026年04月12日 03点04分
3
好累....
对,闭包,装饰器等都是函数嵌套为基础的拓展 闭包,外部函数传递到内部函数 装饰器,原理就是闭包+函数调用函数
2026年04月12日 14点04分
level 7
不潜水了😂
你懵在哪,打了一段话却看不出问题所在
你写提示词是不是也这样
2026年04月12日 05点04分
4
好累....
这是源代码:from functools import wraps def log_call(func): @wraps(func) # def wrapper(*args, **kwargs): print(f"Calling {func.__name__}") return func(*args, **kwargs) return wrapper @log_call def add(a, b): """Return the sum of a and b.""" return a + b print(add.__name__) print(add.__doc__) add(3, 4)
2026年04月12日 15点04分
好累....
抱歉,主要是刚发这个帖子是刚弄完,实在不想打题了
2026年04月12日 14点04分
好累....
简单来说,是一道@wraps的基础 描述: 编写一个装饰器 log_call,它会在函数被调用时打印“Calling <函数名>”的消息。要求: 1. 使用 functools @wraps 保留原函数的元信息(如 __name__、__doc__)。 2. 如果没有使用 @wraps,请指出可能产生的问题(可写注释说明)。 3. 测试装饰器:定义一个带有文档字符串的函数,装饰后检查其 __name__ 和 __doc__ 是否正确保留。
2026年04月12日 14点04分
好累....
我将他分为定义阶段(定义装饰器以及装饰器函数add的定义)应用阶段(外部函数log)调用阶段(执行add)
2026年04月12日 15点04分
level 1
灬聊0j
为什么你们这么喜欢背设计模式呢,带专都这么喜欢让背设计模式吗
2026年04月13日 06点04分
5
好累....
贴吧不能发图片--贴吧的回复不能带格式--我需要给回复我的人尽量完整的答复,这是身为一个计算机从业者必须的
--我回复的不仅有设计模式
2026年04月13日 15点04分
好累....
还有最重要的一点,我只是一个新手,如果你有什么建议的话可以直接说
2026年04月13日 15点04分
level 4
火HJX
装饰器搞懂闭包就很简单,公司的屎山代码不比这难搞多了。
2026年04月13日 23点04分
6
好累....
嗯,弄懂了就感觉挺简单,主要就是还没弄熟
2026年04月14日 06点04分
level 1
借墓苏醒1
设计模式,可以去看看我经常学习的一个资源网站,猿学谷 ,应该对你学习比较有帮助
2026年04月14日 08点04分
7
1