鱼C论坛

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

[已解决]函数传参问题

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

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

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

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

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


class Admin():
    def __init__(self, token):
        print(token)
    def run(self,members,mutetime1,mutetime2):
        print(members,mutetime1,mutetime2)
        test
if __name__ == '__main__':
    token = sys.argv[1]
    members = sys.argv[2]
    mutetime1 = sys.argv[3]
    mutetime2 = sys.argv[4]
    bot = Admin(token)
    bot.run(members,mutetime1,mutetime2)
怎么把members,mutetime1,mutetime2 数据传到test函数里呢?

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

#bot = 'a'
#update = 'b'
def test(bot, update,*args):
    print("bot=%s" % bot)
    print("update=%s" % update)
    print(args)

class Admin():
    def __init__(self, token,update):
        self.bot=token
        self.update=update
    def run(self,members,mutetime1,mutetime2):
        print(members,mutetime1,mutetime2)
        test(self.bot,self.update,[members,mutetime1,mutetime2])
        
if __name__ == '__main__':
    token = sys.argv[1]
    members = sys.argv[2]
    mutetime1 = sys.argv[3]
    mutetime2 = sys.argv[4]
    bot = Admin(token,"555")
    bot.run(members,mutetime1,mutetime2)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-7 20:16:15 | 显示全部楼层
python  xxx.py   参数1  参数2  参数3 。。。。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-7 20:16:32 | 显示全部楼层
直接用run的参数呗
想知道小甲鱼最近在做啥?请访问 -> 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'
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

架构是要传入test文件函数里的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

不知道你这个test 就往那一放 是啥歌意思,,注释掉能运行   #test()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-7 20:31:56 | 显示全部楼层
把前面两个参数传完后跟上你要传的其他参数即可
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

想test(self,members,mutetime1,mutetime2)
这样传参数进去
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

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

def test(bot, update,*args):
    print(bot,update,args)

class Admin():
    def __init__(self, token):
        print(token)
    def run(self,members,mutetime1,mutetime2):
        #print(members,mutetime1,mutetime2)
        test(members,mutetime1,mutetime2)
if __name__ == '__main__':
    token = sys.argv[1]
    members = sys.argv[2]
    mutetime1 = sys.argv[3]
    mutetime2 = sys.argv[4]
    bot = Admin(token)
    bot.run(members,mutetime1,mutetime2)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

没明白,啥意思
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

你的test函数前面两个参数没有默认值,需要先传,后面的你想传什么都行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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


print(bot,update,args)

bot和update有过值了,是要 2 3 4 都传入args
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

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

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

def test(*args):
    print(args)

class Admin():
    def __init__(self, token,up):
        self.token=token
        self.up=up
    def run(self,members,mutetime1,mutetime2):
        test([members,mutetime1,mutetime2])
if __name__ == '__main__':
    token = sys.argv[1]
    bot = Admin(token,"555")
    bot.run(sys.argv[2],sys.argv[3],sys.argv[4])
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

bot = 'a'
update = 'b'
def test(bot, update,*args):
    #print(members,mutetime1,mutetime2)
    print("bot=%s" % bot)
    print("update=%s" % update)
    print(args)


class Admin():
    def __init__(self, token):
        print(token)
    def run(self,members,mutetime1,mutetime2):
        print(members,mutetime1,mutetime2)
        test
if __name__ == '__main__':
    token = sys.argv[1]
    members = sys.argv[2]
    mutetime1 = sys.argv[3]
    mutetime2 = sys.argv[4]
    bot = Admin(token)
    bot.run(members,mutetime1,mutetime2)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

#bot = 'a'
#update = 'b'
def test(bot, update,*args):
    print("bot=%s" % bot)
    print("update=%s" % update)
    print(args)

class Admin():
    def __init__(self, token,update):
        self.bot=token
        self.update=update
    def run(self,members,mutetime1,mutetime2):
        print(members,mutetime1,mutetime2)
        test(self.bot,self.update,[members,mutetime1,mutetime2])
        
if __name__ == '__main__':
    token = sys.argv[1]
    members = sys.argv[2]
    mutetime1 = sys.argv[3]
    mutetime2 = sys.argv[4]
    bot = Admin(token,"555")
    bot.run(members,mutetime1,mutetime2)
想知道小甲鱼最近在做啥?请访问 -> 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'],)

谢谢,我再试试
想知道小甲鱼最近在做啥?请访问 -> 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
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-26 04:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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