报错:run()方法中*后的参数必须是可迭代对象,而非整数?

2026-06-11 06:00:39 198阅读 0评论 SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计393个文字,预计阅读时间需要2分钟。

在多线程操作中,当尝试使用 `threading.Thread` 创建线程时,错误信息表明传递给 `run` 方法的参数必须是一个可迭代对象,而不是整数。以下是修改后的代码,避免了直接传递整数参数给 `run` 方法,确保了参数是一个列表或元组。

报错:run()方法中*后的参数必须是可迭代对象,而非整数?

pythonimport threading

def run(numbers): for n in numbers: print(n)

报错:run()方法中*后的参数必须是可迭代对象,而非整数?

假设我们要传递的数字是1到5numbers=[1, 2, 3, 4, 5]

创建线程并启动thread=threading.Thread(target=run, args=(numbers,))thread.start()thread.join()

[报错] TypeError: run() argument after * must be an iterable, not int

问题描述:

在多线程操作,调用threading.Thread 报错,TypeError: run() argument after * must be an iterable, not int

import threading def run(n): print("run the thread:",n) num = 0 th1 = threading.Thread(target=run, args=(1)) th1.start()

报错:TypeError: run() argument after * must be an iterable, not int

报错原因:

在使用多线程时,会调用多线程类中的run()函数,这个函数需要传入一个可迭代对象,当我们的参数只有一个整数时,单独的整数不可迭代,所以报错;

解决办法:

在整数后面加一个逗号(,) 使其变成元组,元组可迭代,问题解决!

import threading def run(n): print("run the thread:",n) num = 0 th1 = threading.Thread(target=run, args=(1,)) # 在参数1 后面加一个, 即可解决异常; th1.start()

问题解决!!

标签: 整数 报错 而非

本文共计393个文字,预计阅读时间需要2分钟。

在多线程操作中,当尝试使用 `threading.Thread` 创建线程时,错误信息表明传递给 `run` 方法的参数必须是一个可迭代对象,而不是整数。以下是修改后的代码,避免了直接传递整数参数给 `run` 方法,确保了参数是一个列表或元组。

报错:run()方法中*后的参数必须是可迭代对象,而非整数?

pythonimport threading

def run(numbers): for n in numbers: print(n)

报错:run()方法中*后的参数必须是可迭代对象,而非整数?

假设我们要传递的数字是1到5numbers=[1, 2, 3, 4, 5]

创建线程并启动thread=threading.Thread(target=run, args=(numbers,))thread.start()thread.join()

[报错] TypeError: run() argument after * must be an iterable, not int

问题描述:

在多线程操作,调用threading.Thread 报错,TypeError: run() argument after * must be an iterable, not int

import threading def run(n): print("run the thread:",n) num = 0 th1 = threading.Thread(target=run, args=(1)) th1.start()

报错:TypeError: run() argument after * must be an iterable, not int

报错原因:

在使用多线程时,会调用多线程类中的run()函数,这个函数需要传入一个可迭代对象,当我们的参数只有一个整数时,单独的整数不可迭代,所以报错;

解决办法:

在整数后面加一个逗号(,) 使其变成元组,元组可迭代,问题解决!

import threading def run(n): print("run the thread:",n) num = 0 th1 = threading.Thread(target=run, args=(1,)) # 在参数1 后面加一个, 即可解决异常; th1.start()

问题解决!!

标签: 整数 报错 而非