Python
Python - argument after * must be an iterable, not int
올엠
2024. 3. 25. 16:27
반응형

Python에서 Thread를 활용할 경우 인자가 하나인데 INT로 값을 던져줄때 발생하는 문제이다.
원인은 인자를 리스트 형태로 건내줘야 하는데, 값이 하나인 경우 int를 받아주지 못해서 발생한다.
해결 할 수 있는 방법은 두가지로 리스트로 만들거나, 콤마를 마지막에 추가해주는것이다.
아래 다음과 같은 예제코드에서 수정하는 방법은 다음과 같다.
from threading import Thread
import time
def thread_task(number):
print('thread start', number)
for x in range(1, 10):
Thread(target = thread_task, args = (x,)).start()
- 콤마를 추가
Thread(target = thread_task, args = (x,)).start()
- 리스트로 지정
Thread(target = thread_task, args = [x]).start()
추후 인자를 추가해 줄수 있으므로 콤마를 추가하는 방식을 추천한다.
반응형