首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python中的默认参数和可变长度参数

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

Stack Overflow用户
提问于 2018-09-10 14:59:56
回答 2查看 145关注 0票数 0

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

代码语言:javascript
复制
    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变量中同时接受这两个参数,为什么它将第一个参数确定为年龄。

我需要结果应该是这样的格式:

代码语言:javascript
复制
variable(15,'name','surname') as Age:15 and Name: 'name','surname'

如果我不把年龄指定为

代码语言:javascript
复制
variable('new','name') Result needed to be as. Age:12 & Name:'new','name'
EN

回答 2

Stack Overflow用户

发布于 2018-09-10 15:19:50

你可以尝试给出一个列表,而不是各种参数,而且关键字参数应该总是在aguments之后:

代码语言:javascript
复制
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
EN

Stack Overflow用户

发布于 2018-09-10 15:17:57

尝试切换参数:

代码语言:javascript
复制
def variable(*friends,age=12):
    print ('Age:', age)
    print ('Name:', friends)
    return

这应该是可行的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52252586

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档