python装饰器--原来如此简单,python装饰器原理详解

  python装饰器--原来如此简单,python装饰器原理详解

  相关免费学习推荐:python视频教程

  Pyhton的函数装饰器可以通过使用@方法方便地向函数添加函数。

  一、功能使用

   def sum_list(list):

  将列表中的数字相加。

  输入:带有数字的列表

  list=[2,6,3,2,1]

  sum_list(列表)

  sum_=0

  因为我在:列表中

  Sum_=i返回sum_#1。将函数sum_list赋给变量list_sum,产生一个新名称function list _ sum()list _ sum=sum _ list。

  List_sum([2,5,3,8,6])#2。删除函数del list_sum

  List _ sum ([4,3,5,2])# name error : name list _ sum 未定义# 3。函数def sum _ (list) 3360在函数中定义。

  def sum_list(列表):

  将列表中的数字相加。

  输入:带有数字的列表

  list=[2,6,3,2,1]

  sum_list(列表)

  sum_=0

  因为我在:列表中

  sum _=I return sum _ return sum _ list(list)sum _([3,6,3,2]) # 4。将一个函数作为参数传递给另一个函数def print _ () 3360

  打印(太高兴了!)print_()#以定义的函数def deco (function) 3360为参数定义一个嵌套函数。

  定义包装():

  打印(“此函数是嵌套的”)

  函数()

  返回包装

  第二,函数装饰器

  #1.如果嵌套函数=嵌套函数 3360,则用函数装饰符替换嵌套函数

  #定义打印功能

  def打印_():

  打印(太高兴了!)

  打印_()

  #定义一个嵌套函数,参数是定义的函数。

  def deco(功能):

  定义包装():

  打印(“此函数是嵌套的”)

  函数()

  包装退货

  Print_2=deco(print_)#将嵌套函数的函数赋给新函数Print_2()

  print _ 2()if function decorator == function decorator 3360

  #或者采用装饰的方法。

  def deco(功能):

  定义包装():

  打印(“此函数是嵌套的”)

  函数()

  包装退货

  @deco#可以直接将函数deco()嵌套在函数print_()上,形成一个新的函数。

  def打印_():

  打印(太高兴了!)

  Print_()#2。用一个函数装饰器装饰多个函数def print _ name (function) 3360

  这个装饰函数将添加打印函数名的函数到函数

  Import functools#该语句可以在函数修饰后保持函数信息不变。

  @functools.wraps(函数)

  def wrapped(*args,**kwargs):

  *args:表示可以传入任意数量的单值对象,函数会自动以元组的形式收集它们。

  * **kwargvs:表示可以传入任意数量的字典键值对,例如:value=3,函数会自动收集为字典

  Print(函数的名称是%s%function。__name__)

  Return (* args,* * kwargs) #执行传入参数的函数

  包装退货

  @ print _ name def sum _ list(list):

  sum_=0

  因为我在:列表中

  sum_=i返回sum_

  Sum _ list ([5,7,3,2])。_ _ name _ #检查后,函数名没有变化@ print _ name def small _ value(list)3360

  Return min (list) small _ value ([4,8,4,2,4]) # 3。用多个函数装饰器装饰一个函数,靠近函数的装饰器会被优先执行def print _ hash (function) 3360。

  这个装饰函数将把打印函数的散列值的函数添加到函数

  def wrapped(*args,**kwargs):

  *args:表示可以传入任意数量的单值对象,函数会自动以元组的形式收集它们。

  * **kwargvs:表示可以传入任意数量的字典键值对,例如:value=3,函数会自动收集为字典

  Print(函数的名称是% s %函数。__哈希_ _)

  Return (* args,* * kwargs) #执行传入参数的函数

  返回wrappeddef print_name(函数):

  这个装饰函数将添加打印函数名的函数到函数

  def wrapped(*args,**kwargs):

  *args:表示可以传入任意数量的单值对象,函数会自动以元组的形式收集它们。

  * **kwargvs:表示可以传入任意数量的字典键值对,例如:value=3,函数会自动收集为字典

  Print(函数的名称是%s%function。__name__)

  Return (* args,* * kwargs) #执行传入参数的函数

  Return wrapped#将打印函数名和函数值的函数添加到functions @print_hash中

  @ print _ name def small _ value(list):

  返回的min(list)用类来修饰。

  # Class first decorator(object): #需要引入对象。

  def __init__(self,func):

  自我。_ _ func=funcdef _ _ call _ _ (self,* args,* * kwargs) 3360 # _ _ call _ _方法可以让函数使用装饰。

  Timeprint(执行时间:{} 。格式(time.ctime (time.time())))

  自我。_ _ func (* args) @ firstdecorator #使用类的decoration def print _(* number)3360。

  Print (number) print _ (5,63,8,4,6,2)大量免费学习推荐,敬请访问,python教程,(视频)以上是python的函数装饰器的详细内容。更多信息请关注热门IT软件开发工作室其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: