鱼C论坛

 找回密码
 立即注册
查看: 629|回复: 16

[已解决]函数传参问题

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

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

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

x
本帖最后由 abababab 于 2020-4-7 20:26 编辑
  1. import sys

  2. def test(bot, update,*args):
  3.     print(members,mutetime1,mutetime2)


  4. class Admin():
  5.     def __init__(self, token):
  6.         print(token)
  7.     def run(self,members,mutetime1,mutetime2):
  8.         print(members,mutetime1,mutetime2)
  9.         test
  10. if __name__ == '__main__':
  11.     token = sys.argv[1]
  12.     members = sys.argv[2]
  13.     mutetime1 = sys.argv[3]
  14.     mutetime2 = sys.argv[4]
  15.     bot = Admin(token)
  16.     bot.run(members,mutetime1,mutetime2)

复制代码
怎么把members,mutetime1,mutetime2 数据传到test函数里呢?

最佳答案
2020-4-7 21:04:34
  1. import sys

  2. #bot = 'a'
  3. #update = 'b'
  4. def test(bot, update,*args):
  5.     print("bot=%s" % bot)
  6.     print("update=%s" % update)
  7.     print(args)

  8. class Admin():
  9.     def __init__(self, token,update):
  10.         self.bot=token
  11.         self.update=update
  12.     def run(self,members,mutetime1,mutetime2):
  13.         print(members,mutetime1,mutetime2)
  14.         test(self.bot,self.update,[members,mutetime1,mutetime2])
  15.         
  16. if __name__ == '__main__':
  17.     token = sys.argv[1]
  18.     members = sys.argv[2]
  19.     mutetime1 = sys.argv[3]
  20.     mutetime2 = sys.argv[4]
  21.     bot = Admin(token,"555")
  22.     bot.run(members,mutetime1,mutetime2)


复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-4-7 20:16:15 | 显示全部楼层
python  xxx.py   参数1  参数2  参数3 。。。。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-7 20:16:32 | 显示全部楼层
直接用run的参数呗
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-7 20:17:34 | 显示全部楼层
wp231957 发表于 2020-4-7 20:16
python  xxx.py   参数1  参数2  参数3 。。。。。。

TypeError: run() missing 1 required positional argument: 'mutetime2'
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-7 20:19:02 | 显示全部楼层
qiuyouzhi 发表于 2020-4-7 20:16
直接用run的参数呗

架构是要传入test文件函数里的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-7 20:30:38 | 显示全部楼层
abababab 发表于 2020-4-7 20:19
架构是要传入test文件函数里的

不知道你这个test 就往那一放 是啥歌意思,,注释掉能运行   #test()
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-7 20:31:56 | 显示全部楼层
把前面两个参数传完后跟上你要传的其他参数即可
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-7 20:34:12 | 显示全部楼层
wp231957 发表于 2020-4-7 20:30
不知道你这个test 就往那一放 是啥歌意思,,注释掉能运行   #test()

想test(self,members,mutetime1,mutetime2)
这样传参数进去
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-7 20:34:18 | 显示全部楼层
abababab 发表于 2020-4-7 20:19
架构是要传入test文件函数里的

这样能运行,但是不知道是否合乎你的想法

  1. import sys

  2. def test(bot, update,*args):
  3.     print(bot,update,args)

  4. class Admin():
  5.     def __init__(self, token):
  6.         print(token)
  7.     def run(self,members,mutetime1,mutetime2):
  8.         #print(members,mutetime1,mutetime2)
  9.         test(members,mutetime1,mutetime2)
  10. if __name__ == '__main__':
  11.     token = sys.argv[1]
  12.     members = sys.argv[2]
  13.     mutetime1 = sys.argv[3]
  14.     mutetime2 = sys.argv[4]
  15.     bot = Admin(token)
  16.     bot.run(members,mutetime1,mutetime2)

复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-7 20:34:52 | 显示全部楼层
BngThea 发表于 2020-4-7 20:31
把前面两个参数传完后跟上你要传的其他参数即可

没明白,啥意思
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-7 20:37:23 | 显示全部楼层
abababab 发表于 2020-4-7 20:34
没明白,啥意思

你的test函数前面两个参数没有默认值,需要先传,后面的你想传什么都行
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-7 20:47:05 | 显示全部楼层
wp231957 发表于 2020-4-7 20:34
这样能运行,但是不知道是否合乎你的想法


print(bot,update,args)

bot和update有过值了,是要 2 3 4 都传入args
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-7 20:56:08 | 显示全部楼层
abababab 发表于 2020-4-7 20:47
print(bot,update,args)

bot和update有过值了,是要 2 3 4 都传入args

实在是不知道你想干啥,这个意思??
  1. import sys

  2. def test(*args):
  3.     print(args)

  4. class Admin():
  5.     def __init__(self, token,up):
  6.         self.token=token
  7.         self.up=up
  8.     def run(self,members,mutetime1,mutetime2):
  9.         test([members,mutetime1,mutetime2])
  10. if __name__ == '__main__':
  11.     token = sys.argv[1]
  12.     bot = Admin(token,"555")
  13.     bot.run(sys.argv[2],sys.argv[3],sys.argv[4])

复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-7 21:01:04 | 显示全部楼层
wp231957 发表于 2020-4-7 20:56
实在是不知道你想干啥,这个意思??
  1. import sys

  2. bot = 'a'
  3. update = 'b'
  4. def test(bot, update,*args):
  5.     #print(members,mutetime1,mutetime2)
  6.     print("bot=%s" % bot)
  7.     print("update=%s" % update)
  8.     print(args)


  9. class Admin():
  10.     def __init__(self, token):
  11.         print(token)
  12.     def run(self,members,mutetime1,mutetime2):
  13.         print(members,mutetime1,mutetime2)
  14.         test
  15. if __name__ == '__main__':
  16.     token = sys.argv[1]
  17.     members = sys.argv[2]
  18.     mutetime1 = sys.argv[3]
  19.     mutetime2 = sys.argv[4]
  20.     bot = Admin(token)
  21.     bot.run(members,mutetime1,mutetime2)


复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-7 21:04:34 | 显示全部楼层    本楼为最佳答案   
  1. import sys

  2. #bot = 'a'
  3. #update = 'b'
  4. def test(bot, update,*args):
  5.     print("bot=%s" % bot)
  6.     print("update=%s" % update)
  7.     print(args)

  8. class Admin():
  9.     def __init__(self, token,update):
  10.         self.bot=token
  11.         self.update=update
  12.     def run(self,members,mutetime1,mutetime2):
  13.         print(members,mutetime1,mutetime2)
  14.         test(self.bot,self.update,[members,mutetime1,mutetime2])
  15.         
  16. if __name__ == '__main__':
  17.     token = sys.argv[1]
  18.     members = sys.argv[2]
  19.     mutetime1 = sys.argv[3]
  20.     mutetime2 = sys.argv[4]
  21.     bot = Admin(token,"555")
  22.     bot.run(members,mutetime1,mutetime2)


复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-7 21:18:49 | 显示全部楼层


python ccshs3.py 1 2 3 4
2 3 4
bot=1
update=555
(['2', '3', '4'],)

谢谢,我再试试
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-7 21:22:33 From FishC Mobile | 显示全部楼层
abababab 发表于 2020-4-7 21:18
python ccshs3.py 1 2 3 4
2 3 4
bot=1

我睡下了,剩下的你自己可以搞定
修改15楼第11行代码,把bot再传进去
下面增加一行self.bot=bot
self.token=token
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-21 14:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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