Jupyter中input函数异常:变量转为PyodideFuture无法拼接
解决Pyodide下PyodideFuture无法拼接及input()失效问题
- 核心原因:Pyodide运行在浏览器环境中,多数IO操作(包括
input())是异步的,会返回PyodideFuture对象而非直接结果值,必须通过await获取实际内容。 - 正确使用
input()并完成拼接的示例:import asyncio async def handle_input_and_concat(): # 用await拿到真实的输入字符串,而非Future对象 str_a = await input("请输入第一个字符串:") str_b = await input("请输入第二个字符串:") # 正常执行拼接操作 combined_str = str_a + " " + str_b print("拼接结果:", combined_str) # 执行异步函数 asyncio.run(handle_input_and_concat()) - 关键注意点:
- 必须在异步函数内部使用
await,全局环境下直接使用可能报错(部分Jupyter环境支持顶级await,但封装成异步函数兼容性更好)。 - 所有返回
PyodideFuture的操作,都要加await才能获取真实值,否则无法进行字符串拼接、数值运算等常规操作。
- 必须在异步函数内部使用
内容的提问来源于stack exchange,提问作者Dab Dab
相关产品推荐
相关产品推荐

