python3 TypeError:“函数”对象不可迭代

Dro*_*oid 0 python iteration function python-3.x

源代码需要进行哪些更改?

    def Update():
        打印('\ n')
        打印(“更新”)
        cmd = os.system('xterm -e apt-get update')
        打印(“完成更新”)

    def AptUpdate():
        打印('\ n')
        打印(“更新系统?{Y / N}”)
        打印(“ Y或y”)
        打印(“ N或n”)
        代码=输入(“命令>”)
        如果代码=='y'或代码=='Y':
            对于我在Update()中:
                返回更新
            elif代码=='n'或代码=='N': 
                返回 
            其他: 
                打印(“警告!”)

    AptUpdate()

    例外:

    追溯(最近一次通话):
      在第110行的文件“ pybash.py”中 
        AptUpdate()
      AptUpdate中的文件“ pybash.py”,第102行
        对于我在更新:
    TypeError:“函数”对象不可迭代

小智 6

追溯错误指出的是滥用for语句:

for i in Updt():

forpython 3中的代码如下:“ Python的for语句以它们在序列中出现的顺序遍历任何序列的项(列表或字符串)。” (来源:python 3.3文档,第4节:更多的控制结构Python 3

由于函数既不是列表也不是字符串,因此不能使用以下格式:

for [variable] in [function]():

至于需要解决的问题,取决于这两个功能应分别完成什么。

  • 我忘了把 () 放在函数调用的末尾,所以 Python 抛出了同样的错误。`routes = db.get_all_routes`(新行)`路由中的路由:`应该是`routes = db.get_all_routes()`(新行)`路由中的路由:` (3认同)
  • 如果函数返回可迭代类型,则可以使用它。他的问题是在他的实际代码中(基于错误),他从不调用函数,而是尝试迭代函数本身的引用。 (2认同)