Python:Decorator +列表理解-TypeError:“ int”对象不可迭代

ɑː

我试图返回一个除以2的列表,以获得列表中的偶数。我正在尝试使用装饰器执行此操作,但是由于TypeError: 'int' object is not iterable

我的代码是

def getEven(fnc): 
    def inner(list_of_val):
        return [ devideBy2(int(value)) for value in list_of_val ]
    return inner

@getEven
def devideBy2(num):
    return int(num)/2

list_of_num = [ 1, 2, 3, 4, 5]

print(devideBy2(list_of_num))

当我遍历list_of_num其打印每个数字时,我的想法就像,现在每个数字将传递一个参数给devideBy2function并返回结果num/2

但是我最后得到了TypeError: 'int' object is not iterable

请帮助我了解我在哪里做错了。

谢谢。

Devesh库玛·辛格

您需要调用在函数内部传递的inner函数,而不是调用正在装饰的函数。另外,您已经将传递的值转换为intin fnc,而无需在getEven

def getEven(fnc): 
    def inner(list_of_val):

        # Call fnc here instead of devideBy2
        return [ fnc(value) for value in list_of_val ]
    return inner

@getEven
def devideBy2(num):
    return int(num)/2

list_of_num = [ 1, 2, 3, 4, 5]

print(devideBy2(list_of_num))

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用列表时,python 中的 Int 对象不可迭代 TypeError

尝试在列表中添加int的Python 3.8“ TypeError:'int'对象不可迭代”

TypeError:“ int”对象不可迭代;Python 2.7

TypeError:'int'对象不可迭代-Python

Python-TypeError:“ int”对象不可迭代

'int'对象不可迭代-Python列表

列表的Python问题(TypeError:“ NoneType”对象不可迭代)

遍历Python列表获取TypeError:'NoneType'对象不可迭代

Python:TypeError:无法解压缩不可迭代的int对象

Python:TypeError:'numpy.int64'对象不可迭代

列表()映射对象之后的Python“int对象不可迭代”

获取 TypeError: 'int' 对象不可迭代尝试将项目附加到列表

Python TypeError:“AutoField”对象不可迭代

Python - TypeError:“NoneType”对象不可迭代

TypeError:“ NoneType”对象在Python中不可迭代

Python TypeError:“方法”对象不可迭代

Python:TypeError:“ float”对象不可迭代

Selenium / Python TypeError:“ WebElement”对象不可迭代

Python TypeError:'bool'对象不可迭代

对象列表的Python迭代“不可迭代”

变量后没有逗号的python导致TypeError:'int'对象不可迭代

Keras错误:TypeError:“ int”对象不可迭代

Tensorflow-TypeError:'int'对象不可迭代

多重处理:TypeError:“ int”对象不可迭代

TypeError:“ int”对象是否不可迭代?

不断收到TypeError:“ int”对象不可迭代

keras-TypeError:“ int”对象不可迭代

opencv TypeError:'int'对象不可迭代

TypeError:“ int”对象在向导中不可迭代