作者xdd1524 (醉拳甘乃迪)
看板Python
标题[问题] decorator定义
时间Sun Jun 26 19:50:37 2016
decorator的定义
最基本的应该就是
@g
def f(..):
等价於
def f(..):
f=g(f)
不过我还是不太清楚,google几个网站,每一种说法都不同= =
假如我随便写了一个
def f2(func):
def f3(x):
return func(x**2)
return f3
@f2
def f1(x):
return x
我的想法是
因为f1=f2(f1)
然後因为f2回传是f3这个函数
所以f1=f3
假如我今天要算f1(20)
就会变成
f1(20)=f3(20)
=f1(20**2)
=f1(400)
=400
跑出来也确实是400
但这样的想法是正确的吗?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.42.120.218
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1466941840.A.186.html
1F:→ MOONY135: f(g(x)) 这种概念可以了解吗 06/26 22:00
2F:推 Yshuan: 你可以试着用decorator去做value cache或是time profile 06/26 22:51
3F:→ uranusjr: 你这样理解没有太大问题 06/27 00:11
4F:→ xdd1524: 感谢 我再琢磨一下 06/27 11:21