python中的默认参数和可变长度参数

时间:2018-09-10 06:59:56

标签: python

在函数中,我定义了两个参数1:default变量age=122:variable-length变量*friends

    def variable(age=12,*friends):
         print 'Age:', age
         print 'Name:', friends
         return
    variable(15,'amit','rishabh') # RESULT is "Age: 15 & Name: 'amit', 'rishabh'
    variable('rahul','sourabh') # Now here result is Age: rahul & Name: 'sourabh' 

所以我的问题是,为什么函数不使用*friends变量中的两个参数,为什么将第一个参数确定为age。

我需要的结果应采用以下格式:

variable(15,'name','surname') as Age:15 and Name: 'name','surname'

如果我不指定年龄为

variable('new','name') Result needed to be as. Age:12 & Name:'new','name'

2 个答案:

答案 0 :(得分:1)

您可以尝试提供列表而不是各种参数,关键字参数也应始终放在参数之后:

def variable(friends, age=12):
    print 'Age:', age
    print 'Name:', ",".join(friends)
    return
variable(['amit','rishabh'], 15) # RESULT is "Age: 15 & Name: 'amit', 'rishabh'
variable(['rahul','sourabh']) # Now here result is Age: rahul & Name: 'sourabh'

答案 1 :(得分:0)

尝试切换参数:

def variable(*friends,age=12):
    print ('Age:', age)
    print ('Name:', friends)
    return

这应该有效。