鱼C论坛

 找回密码
 立即注册
查看: 1401|回复: 8

[已解决]向协程函数中传递多参数的问题,谢谢

[复制链接]
发表于 2020-7-29 09:36:20 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
代码写成这样就报错:
import asyncio
async def hanshu1():
    a = [1,2,3]
    b = [4,5,6]
    return a,b
async def main(fbi,cis):
    print(fbi,cis)
t1 = asyncio.run(hanshu1())
fbi_list = t1[0]
cis_list = t1[1]
task1 = [main(fbi) for fbi in fbi_list]
task2 = [main(cis) for cis in cis_list]
asyncio.run(asyncio.wait(task1,task2))

我想往main函数中传两个参数,如果传一个代码如下是正常的,但是传两个肯定是我写的不对,哪位高手能帮忙指点一下,谢谢
import asyncio
async def hanshu1():
    a = [1,2,3]
    b = [4,5,6]
    return a,b
async def main(fbi):
    print(fbi)
t1 = asyncio.run(hanshu1())
fbi_list = t1[0]
# cis_list = t1[1]
task1 = [main(fbi) for fbi in fbi_list]
asyncio.run(asyncio.wait(task1))
最佳答案
2020-7-29 09:39:24

main 函数你设置了两个参数,只传入了一个

你试试这样行不:
import asyncio
async def hanshu1():
    a = [1,2,3]
    b = [4,5,6]
    return a,b
async def main(fbi,cis):
    print(fbi,cis)
t1 = asyncio.run(hanshu1())
fbi_list = t1[0]
cis_list = t1[1]
temp = list(zip(fbi_list,cis_list))
task1 = [main(fbi,cis) for fbi,cis in temp]

asyncio.run(asyncio.wait(task1))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-7-29 09:39:24 | 显示全部楼层    本楼为最佳答案   

main 函数你设置了两个参数,只传入了一个

你试试这样行不:
import asyncio
async def hanshu1():
    a = [1,2,3]
    b = [4,5,6]
    return a,b
async def main(fbi,cis):
    print(fbi,cis)
t1 = asyncio.run(hanshu1())
fbi_list = t1[0]
cis_list = t1[1]
temp = list(zip(fbi_list,cis_list))
task1 = [main(fbi,cis) for fbi,cis in temp]

asyncio.run(asyncio.wait(task1))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-29 09:41:47 | 显示全部楼层
import asyncio


async def hanshu1():
    a = [1, 2, 3]
    b = [4, 5, 6]
    return a, b


async def main(fbi, cis):
    print(fbi, cis)


t1 = asyncio.run(hanshu1())
fbi_list = t1[0]
cis_list = t1[1]
task1 = [main(fbi, cis) for fbi, cis in zip(fbi_list, cis_list)]
asyncio.run(asyncio.wait(task1))

评分

参与人数 1荣誉 +5 鱼币 +5 贡献 +3 收起 理由
jjxx2005 + 5 + 5 + 3

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2020-7-29 09:52:19 | 显示全部楼层
Twilight6 发表于 2020-7-29 09:39
main 函数你设置了两个参数,只传入了一个

你试试这样行不:

版主您好,程序运行报错。提示如下
Traceback (most recent call last):
  File "D:/code/0000000.py", line 22, in <module>
    asyncio.run(main())
TypeError: main() missing 2 required positional arguments: 'fbi' and 'cis'
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-29 09:52:55 | 显示全部楼层

版主您好,程序运行报错,提示如下:
Traceback (most recent call last):
  File "D:/code/0000000.py", line 22, in <module>
    asyncio.run(main())
TypeError: main() missing 2 required positional arguments: 'fbi' and 'cis'
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-29 09:55:06 | 显示全部楼层
jjxx2005 发表于 2020-7-29 09:52
版主您好,程序运行报错,提示如下:
Traceback (most recent call last):
  File "D:/code/0000000.py ...

我这里并没有报错呀,你试试直接复制下面的代码运行?
import asyncio


async def hanshu1():
    a = [1, 2, 3]
    b = [4, 5, 6]
    return a, b


async def main(fbi, cis):
    print(fbi, cis)


t1 = asyncio.run(hanshu1())
fbi_list = t1[0]
cis_list = t1[1]
task1 = [main(fbi, cis) for fbi, cis in zip(fbi_list, cis_list)]
asyncio.run(asyncio.wait(task1))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-29 09:55:29 | 显示全部楼层
jjxx2005 发表于 2020-7-29 09:52
版主您好,程序运行报错。提示如下
Traceback (most recent call last):
  File "D:/code/0000000.py", ...



你不是拷贝我们的代码吧,你应该拷贝错了,重新拷贝运行即可
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-29 09:58:23 | 显示全部楼层

只能选一个最佳答案 我就按先后顺序了  感谢版主解答 加分
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-29 09:59:28 | 显示全部楼层
Twilight6 发表于 2020-7-29 09:55
你不是拷贝我们的代码吧,你应该拷贝错了,重新拷贝运行即可

感谢  是我拷贝错了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-19 17:08

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表