python 默认参数在函数定义的时候已经求值了

 我来答
领企设计
2017-08-02 · TA获得超过306个赞
知道小有建树答主
回答量:360
采纳率:40%
帮助的人:49.9万
展开全部
#有默认参数
#定义默认参数 age = 1, gender = 'M'
def person( name, age = 1, gender='M'):
print 'name: %s age: %d gender: %s' % (name, age, gender)

#这里只传一个值给第一个参数which is name, age 和 gender已经有默认值,
#就算不传新值给 age or gender也没问题
person('Jacky')
#output --> name: Jacky age: 1 gender: M

#没有默认参数
def person(name, age, gender):
print 'name: %s age: %d gender: %s' % (name, age, gender)

# person('Jacky') <-- error, 3个参数只传了一个值
#没有默认参数,就一定要传 N(total 参数) 个值给 function.
person('Jacky', 19, 'M')

******************************************************

#关键字参数
#用上面第一个例子 person( name, age=1, gender='M')
#用关键字给function传值时,不虽要跟著顺序来也没问题

#就算 age 和 name 顺序不同, 但因为是用关键字来传值,所以没问题
person( age=18, name='Jacky')
#output --> name: Jacky age: 18 gender: 'M'

person( gender='F', age=17, name='Ashley')
#output --> name: Ashley age: 17 gender: 'F'

# Error, 没用关键字去传值
# person( 20, 'M', 'Jacky') <-- 没用关键字时,一定要按顺序去传值

i tried to explain as clear as i can.xP
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式