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

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

반응형