본문 바로가기
Python

Python - argument after * must be an iterable, not int

by 올엠 2024. 3. 25.
반응형

 

 

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()

추후 인자를 추가해 줄수 있으므로 콤마를 추가하는 방식을 추천한다.

반응형