从python中的列表调用带有参数的函数的有效方法是什么

时间:2017-08-14 20:12:08

标签: python

我目前的代码类似于以下内容。

    def func(args):
        optionalparameters = ((args.split(':')[1]).split(' '))[1:]
        second_func(optionalparameters)

这假设args是冒号分隔的字符串;它需要下半部分,将它分成空格分隔的单词并返回(列表中的?)除了第一个之外的所有单词。包含多个冒号的情况尚未处理,因为我是该语言的新手。

optional_parameters可以不作为列表传递吗?由于参数是可选的,以下内容是否有效?

    def func(args):
        optionalparameters = ((args.split(':')[1]).split(' '))[1:]
        val1=val2=val3=None
        try:
            val1 = optionalparameters[0]
        except IndexError:
            pass
        try:
            val2 = optionalparameters[1]
        except IndexError:
            pass
        try:    
            val3 = optionalparameters[2]
        except IndexError:
            pass
        second_func(val1, val2, val3)

标准库模块似乎可以做很多事情。任何有关参数处理的帮助都非常受欢迎。

1 个答案:

答案 0 :(得分:0)

您可以unpack列表中的值:

optionalparameters = ((args.split(':')[1]).split(' '))[1:]
second_func(*optionalparameters)

或:

val1, val2, val3=((args.split(':')[1]).split(' '))[1:]    
second_func(val1, val2, val3)