python中装饰器的作用范围


def dec(f):
     def in_dec(*arg):
          print ('call in_dec')
          if len(arg)==0:
               return 0
          for val in arg :
               if not isinstance(val,int):
                    return 0
          return f(*arg)
     return in_dec
 
@dec #装饰器的语法
def my_sum(*arg):
     return sum(arg)
print my_sum(1,2,3,4)
def my_average(*arg):
     return sum(arg)/len(arg)
print my_average(1,2,3)

前面两个函数都被装饰器装饰了

def turn(*arg):
 return  int(arg[0])
print turn('1','2')

这个函数就没有被装饰,但是如果把这个函数放在最上面,就会被装饰,想要被装饰但没有作用

当定义装饰器之后的作用什么时候,如果不想后面的函数被装饰怎么办




skipper丨
浏览 1783回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python