装饰器
In[1]: a = 10
b = [12,13]
def test():
print(test)
c = test
In[2]:c #c为一个函数
Out[2]:<function __main__.test>
可以把函数赋值给一个变量
In[3]:c.__name__
Out[3]:'test'
函数可以当作函数的返回值进行返回
In[4]:def test(func):
return func
def func():
return('func run')
f = test(func)
f.__name__
Out[4]:'func'
In[5]:@decorator
def test():
return random.random()
希望改变函数本身的内容,可写成如下
In [6]: def decorator(func):
def wrapper(*args, **kwargs):
# do sth
return round(func(*args, **kwargs), 3)
return wrapper
In [7]:test()
Out[7]:0.893