标签:例子 img welcome 简单 属性 图片 面向 存在 alt
def welcome(func): # 参数是一个函数
def inner_f():
"""这是装饰器中的welcome函数"""
print(‘welcome‘.center(40,‘~‘))
func()
return inner_f # 返回值是另一个函数,使用该返回的函数替代作为参数的函数
@welcome # 说明底下定义的函数被welcome所装饰,使用该返回的函数替代作为参数的函数
def name():
"""这个是name函数"""
print(‘name is toto‘)
name() # 调用welcome 函数
1、 被装饰的函数存在参数的时候
在构建装饰器的时候,作为返回值的函数是用来替代作为参数的函数的,所以这两个函数所需要的参数必须一致。就时说再定义函数装饰器的时候,指定作为参数的函数可以由于任意个参数以及作为返回值的函数可以右任意个参数,这样就能保证再实际使用的时候不论被装饰的函数需要几个参数,都能使用该装饰器。
def welcome(func): # 参数是一个函数
def inner_f(*args,*kwargs): # 指定返回的函数可以有任意个参数
"""这是装饰器中的welcome函数"""
print(‘welcome‘.center(40,‘~‘))
func(args,**kwargs) # 作为参数的函数也有任意个参数
return inner_f # 返回值是另一个函数
@welcome # 可以装饰一个参数的函数
def name(name):
"""这个是name函数"""
print(‘name is %s‘ %name)
@welcome # 也可以装饰两个参数的函数
def stuinfo(name,age):
print(‘name is %s ,age is %d‘ %(name,age))
name(‘toto‘)
stuinfo(‘lala‘,16)
标签:例子 img welcome 简单 属性 图片 面向 存在 alt
原文地址:https://blog.51cto.com/12893781/2404286