为了账号安全,请及时绑定邮箱和手机立即绑定

为什么在上节例子中把闭包用装饰器调用后出现Int不能和str类型相加的错误?

为什么在上节例子中把闭包用装饰器调用后出现Int不能和str类型相加的错误?

xwwy 2016-05-02 00:42:34
# coding: utf-8 def dec(func):     def in_dec(*args):         if len(args) == 0:             return 0         for val in args:             if not isinstance(val, int):                 return 0         return func(*args)     return in_dec @dec def my_sum(*args):     return sum(args) def my_average(*args):     return sum(args) / len(args) #my_sum = dec(my_sum) #my_average = dec(my_average) print (my_sum(1, 2, 3, 4, 5)) print (my_sum(1, 'a', 3, 5, 9)) print (my_average(1, 2, 3, 4, 5)) print (my_average(1, 'a', 3, 5, 9)) #闭包里明明已经对这个进行过滤了啊??
查看完整描述

1 回答

已采纳
?
清波

TA贡献165条经验 获得超90个赞

修饰了 第一个函数 my_sum(),  没有修饰第二个函数 my_average()

查看完整回答
反对 回复 2016-05-02
  • 1 回答
  • 0 关注
  • 1394 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信