源代码需要进行哪些更改?
def Update(): print('\n') print("Update") cmd = os.system('xterm -e apt-get update') print("Finish update") def AptUpdate(): print('\n') print("Update system? {Y/N}") print("Y or y") print("N or n") code = input("Command > ") if code == 'y' or code == 'Y': for i in Update(): return Update elif code == 'n' or code == 'N': return else: print("Warning!") AptUpdate() exception: Traceback (most recent call last): File "pybash.py", line 110, in AptUpdate() File "pybash.py", line 102, in AptUpdate for i in Update: TypeError: 'function' object is not iterable
答案 0 :(得分:4)
回溯错误指出的是滥用for语句:
for i in Updt():
for
如下所示:" Python的for语句按照它们在序列中出现的顺序迭代任何序列(列表或字符串)的项目。&#34 ; (来源:python 3.3文档,第4节:更多控制结构Python 3
由于函数既不是列表也不是字符串,因此您无法使用以下格式:
for [variable] in [function]():
就需要修复的内容而言,它取决于这两个函数应单独完成的内容。
答案 1 :(得分:0)
所以让我们来分解错误。
TypeError:“函数”对象不可迭代
此错误指向该行
for i in Update()
您始终希望in之后的“事物”是可迭代的,意味着可以循环通过的事物。因为您实际上并没有在Update()函数中返回任何内容。 Python尝试遍历不允许类型为NoneType的对象。