[英]how to pass arguments in thread in python
作为我正在开发的交易应用程序的一部分,我需要将参数发送到线程。 我已经参考了以下链接,但这些都不起作用。
Python 穿线字符串 Arguments ,
如何将 arguments 传递给 Python 中的线程函数,
python 线程 - 将 arguments 传递给线程的最佳方式
我的代码
order_trigger_loop_initiator = threading.Thread(target=trigger(), args=[company_data['instrument_token']])
renko_loop_initiator.start()
我作为线程启动的 function 的一部分
def RENKO_TRIMA(token):
global ohlc_final_1min, RENKO_Final, final_position, order_quantity, RENKO, RENKO_temp, Direction, Orderid, Target_order, Target_order_id, renko_thread_running, day_profit_percent
try:
renko_thread_running = "YES"
attained_profit()
quantity()
positions(token)
我遵循了上述网站中的建议,甚至尝试做类似的事情
renko_loop_initiator = threading.Thread(target=RENKO_TRIMA, args=company_data['instrument_token'])
和
renko_loop_initiator = threading.Thread(target=RENKO_TRIMA, args=[company_data['instrument_token']]))
renko_loop_initiator = threading.Thread(target=RENKO_TRIMA, args=(company_data['instrument_token']))
renko_loop_initiator = threading.Thread(target=RENKO_TRIMA, args=(company_data['instrument_token'],))
似乎没有任何工作。 作为参数发送的值将是 1270529
当我尝试上述任何方法时,我收到以下错误消息。
Traceback (most recent call last):
File "C:/Users/win10/PycharmProjects/Trading-Application/USD-INR.py", line 838, in on_ticks
order_trigger_loop_initiator = threading.Thread(target=trigger(), args=[company_data['instrument_token']])
TypeError: trigger() missing 1 required positional argument: 'token'
在错误消息中,您正在调用trigger
,而不是将其作为 function 传递。
order_trigger_loop_initiator = threading.Thread(target=trigger(), ...
# uh oh ---^
尝试只传递 function:
order_trigger_loop_initiator = threading.Thread(
target=trigger,
args=[company_data['instrument_token']]
)
您正在那里立即调用trigger
(您没有在问题中发布,使这个猜测):
order_trigger_loop_initiator = threading.Thread(
target=trigger(),
args=[company_data['instrument_token']],
)
That might work if trigger
was a function that accepted no arguments and returned another function, but if you mean to run the trigger
function in another thread, you'll want to remove those parentheses:
order_trigger_loop_initiator = threading.Thread(
target=trigger,
args=[company_data['instrument_token']],
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.