모든 사람이 쉽게 이해할 수 없을지라도 나는 분명히하려고 노력할 것입니다. 저는 파이썬으로 코딩하는 초보자이므로 모든 도움이 좋을 것입니다! librairies 가져 오기 : 요청 및 스레딩. 데이터 전송 시간을 줄이기 위해 parrallel 여러 URL을 보내려고합니다. 동적 목록을 사용하여 모든 URL을 쌓은 다음 requests.post를 사용하여 URL을 보냈습니다.파이썬에서 스레드와 동적 목록과 관련된 문제
는l=[]
if ALARM&1:
alarmType="Break Alarm"
AlarmNumber = 1
sendAlarm(alarmType, AlarmNumber)
print alarmType
else:
s = "https://..." #the url works
l.append(threading.Thread(target=requests.post, args=(s)))
if ALARM&2:
alarmType=0
if ALARM&4:
alarmType="Limit Switch"
AlarmNumber = 2
sendAlarm(alarmType, AlarmNumber)
print alarmType
else:
s="https://..."
l.append(threading.Thread(target=requests.post, args=(s)))
for t in l:
t.start()
for t in l:
t.join()
내가 가진 오류는 다음과 같습니다
Exception in thread Thread-1:
Traceback (most recent call last):
File "/usr/lib/python2.7/threading.py", line 810, in __bootstrap_inner
self.run()
File "/usr/lib/python2.7/threading.py", line 763, in run
self.__target(*self.__args, **self.__kwargs)
TypeError: post() takes at most 3 arguments (110 given)
과 같은 일 스레드 2, 나는 내 주위에 물어하지만 우리는 해결책을 찾을 수 없습니다. 누군가 아이디어가 있다면? 감사 !
'args = (s,)'를 사용하면 튜플을 정의하기에 충분하지만 주변에 여분의 괄호가 필요하다고 생각하지 않습니까? 또한 OP 요소 문제의 근본 원인 인 단일 요소 튜플에 쉼표가 필요하다는 것을 명확히하는 것이 가치 있다고 생각합니다. – SiHa
@SiHa : 좋은 지적. OP는 세트를 사용하려고했지만 특정 포인트를 놓친 것 같습니다. –
Jerome에게 감사드립니다. 나는 그것에 시간을 보냈다! 더 신중해야하고 문서를 더보아야합니다 .. 다시 한번 감사드립니다! – GarennePb