abababab 发表于 2020-4-7 20:10:03

函数传参问题

本帖最后由 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
    members = sys.argv
    mutetime1 = sys.argv
    mutetime2 = sys.argv
    bot = Admin(token)
    bot.run(members,mutetime1,mutetime2)

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

wp231957 发表于 2020-4-7 20:16:15

pythonxxx.py   参数1参数2参数3 。。。。。。

qiuyouzhi 发表于 2020-4-7 20:16:32

直接用run的参数呗

abababab 发表于 2020-4-7 20:17:34

wp231957 发表于 2020-4-7 20:16
pythonxxx.py   参数1参数2参数3 。。。。。。

TypeError: run() missing 1 required positional argument: 'mutetime2'

abababab 发表于 2020-4-7 20:19:02

qiuyouzhi 发表于 2020-4-7 20:16
直接用run的参数呗

架构是要传入test文件函数里的

wp231957 发表于 2020-4-7 20:30:38

abababab 发表于 2020-4-7 20:19
架构是要传入test文件函数里的

不知道你这个test 就往那一放 是啥歌意思,,注释掉能运行   #test()

BngThea 发表于 2020-4-7 20:31:56

把前面两个参数传完后跟上你要传的其他参数即可

abababab 发表于 2020-4-7 20:34:12

wp231957 发表于 2020-4-7 20:30
不知道你这个test 就往那一放 是啥歌意思,,注释掉能运行   #test()

想test(self,members,mutetime1,mutetime2)
这样传参数进去

wp231957 发表于 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
    members = sys.argv
    mutetime1 = sys.argv
    mutetime2 = sys.argv
    bot = Admin(token)
    bot.run(members,mutetime1,mutetime2)

abababab 发表于 2020-4-7 20:34:52

BngThea 发表于 2020-4-7 20:31
把前面两个参数传完后跟上你要传的其他参数即可

没明白,啥意思

BngThea 发表于 2020-4-7 20:37:23

abababab 发表于 2020-4-7 20:34
没明白,啥意思

你的test函数前面两个参数没有默认值,需要先传,后面的你想传什么都行

abababab 发表于 2020-4-7 20:47:05

wp231957 发表于 2020-4-7 20:34
这样能运行,但是不知道是否合乎你的想法

print(bot,update,args)

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

wp231957 发表于 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()
if __name__ == '__main__':
    token = sys.argv
    bot = Admin(token,"555")
    bot.run(sys.argv,sys.argv,sys.argv)

abababab 发表于 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
    members = sys.argv
    mutetime1 = sys.argv
    mutetime2 = sys.argv
    bot = Admin(token)
    bot.run(members,mutetime1,mutetime2)


wp231957 发表于 2020-4-7 21:04:34

abababab 发表于 2020-4-7 21:01


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,)
      
if __name__ == '__main__':
    token = sys.argv
    members = sys.argv
    mutetime1 = sys.argv
    mutetime2 = sys.argv
    bot = Admin(token,"555")
    bot.run(members,mutetime1,mutetime2)


abababab 发表于 2020-4-7 21:18:49

wp231957 发表于 2020-4-7 21:04


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

谢谢,我再试试

wp231957 发表于 2020-4-7 21:22:33

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
页: [1]
查看完整版本: 函数传参问题