python关键字参数非关键字参数

来源:互联网 发布:淘宝运营团队收费 编辑:程序博客网 时间:2024/06/05 17:47
#有默认参数
#定義默认参数 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
0 0
原创粉丝点击