Python的默认参数和关键参数有何区别

Python016

Python的默认参数和关键参数有何区别,第1张

默认参数就是调用该函数时,不指定该参数的情况的默认值。比如对数据进行分析的函数,如果大部分情况不需要保存结果,但是有时候又需要保存,就可以增加一个参数来指定是否保存,默认不保存,调用时可以不管该参数。

#有默认参数

#定义默认参数 age = 1, gender = 'M'

def person( name, age = 1, gender='M'):

print 'name: %s age: %dgender: %s' % (name, age, gender)

#这里只传一个值给第一个参数which is name, age 和 gender已经有默认值,

#就算不传新值给 age or gender也没问题

person('Jacky')

#output -->name: Jacky age: 1gender: 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: 18gender: '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