【发布时间】:2019-03-08 07:29:03
【问题描述】:
我尝试运行这段代码:
import asyncio
async def eva(code):
exec("async def ex(): return {}".format(code))
return await asyncio.wait_for(locals()["ex"](), timeout=1.0)
async def main():
while True:
code = input()
x = await asyncio.wait_for(eva(code), timeout=1.0)
print(x)
asyncio.run(main())
并得到以下错误:
<module> asyncio.run(main()) File "C:\Users\\{user}\AppData\Local\Programs\Python\Python37\lib\asyncio\runners.py", line 43, in run return loop.run_until_complete(main) File "C:\Users\\{user}\AppData\Local\Programs\Python\Python37\lib\asyncio\base_events.py", line 584, in run_until_complete return future.result() File "eval.py", line 10, in main x = await asyncio.wait_for(eva(code), timeout=1.0) File "C:\Users\\{user}\AppData\Local\Programs\Python\Python37\lib\asyncio\tasks.py", line 416, in wait_for return fut.result() File "eval.py", line 5, in eva return await asyncio.wait_for(locals()["ex"](), timeout=1.0) File "C:\Users\\ {user}\AppData\Local\Programs\Python\Python37\lib\asyncio\tasks.py", line 416, in wait_for return fut.result() File "<string>", line 1, in ex TypeError: 'int' object is not iterable ```
你能帮我理解到底发生了什么吗?
【问题讨论】:
-
您的意见是什么?损坏的输入是导致这种情况的唯一方法。
标签: python python-3.x python-asyncio