如何在 python 中的线程中传递参数
how to pass arguments in thread in python
作为我正在开发的交易应用程序的一部分,我需要向线程发送一个参数。我已经引用了以下链接,其中 none 有效。
Python Threading String Arguments,
,
python threading - best way to pass arguments to threads
我的代码
order_trigger_loop_initiator = threading.Thread(target=trigger(), args=[company_data['instrument_token']])
renko_loop_initiator.start()
我作为线程启动的部分功能
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
而不是将其作为函数传递。
order_trigger_loop_initiator = threading.Thread(target=trigger(), ...
# uh oh ---^
尝试只传递函数:
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']],
)
如果 trigger
是一个不接受任何参数并返回另一个函数的函数,那可能会起作用,但如果你想 运行 在另一个线程中使用 trigger
函数,你将想要删除那些括号:
order_trigger_loop_initiator = threading.Thread(
target=trigger,
args=[company_data['instrument_token']],
)
作为我正在开发的交易应用程序的一部分,我需要向线程发送一个参数。我已经引用了以下链接,其中 none 有效。
Python Threading String Arguments,
python threading - best way to pass arguments to threads
我的代码
order_trigger_loop_initiator = threading.Thread(target=trigger(), args=[company_data['instrument_token']])
renko_loop_initiator.start()
我作为线程启动的部分功能
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
而不是将其作为函数传递。
order_trigger_loop_initiator = threading.Thread(target=trigger(), ...
# uh oh ---^
尝试只传递函数:
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']],
)
如果 trigger
是一个不接受任何参数并返回另一个函数的函数,那可能会起作用,但如果你想 运行 在另一个线程中使用 trigger
函数,你将想要删除那些括号:
order_trigger_loop_initiator = threading.Thread(
target=trigger,
args=[company_data['instrument_token']],
)