Flask应用线程代码报错:threading.Thread参数传递语法问题排查
报错原因及解决方案
这是个典型的Python threading模块参数传递的语法错误,我来帮你拆解问题核心:
报错原因
threading.Thread 类的 args 参数要求传入位置参数组成的元组,而你在代码里直接把带关键字赋值的语句(host='0.0.0.0', port=443)放进了元组里——Python语法不允许元组内部出现这种关键字赋值操作,这就是触发语法报错的直接原因。
正确的写法
你有两种可行的修正方式,优先推荐第一种:
方式一:用kwargs传递关键字参数(推荐)
因为app.run的host和port通常作为关键字参数使用,threading.Thread提供了kwargs参数来接收关键字参数的字典,这样代码可读性更高,也不会因为函数参数顺序变动出问题:
t1 = threading.Thread(target=app.run, kwargs={'host': '0.0.0.0', 'port': 443})
方式二:用args传递位置参数
如果你确认app.run的参数顺序是host在前、port在后,可以直接把参数值按顺序放进元组:
t1 = threading.Thread(target=app.run, args=('0.0.0.0', 443))
内容的提问来源于stack exchange,提问作者eshkere111222333
相关产品推荐
相关产品推荐

