1. 位置參數:通常的參數spa
2. 默認參數: code
1 def power(x, n=2): 2 s = 1 3 while n > 0: 4 n = n - 1 5 s = s * x 6 return s
參數裏有默認賦值,調用時用power(5)就是平方,若是power(5, 3)就是立方了blog
若是有多個默認參數,調用時前面用默認參數,後面不是用默認參數,則須要在調用語句中寫出「參數名 = 參數值」,好比下面這個狀況ci
1 def enroll(name, gender, age=6, city='Beijing'): 2 print('name:', name) 3 print('gender:', gender) 4 print('age:', age) 5 print('city:', city)
enroll('bob','M',7)這樣沒有參數名是能夠的,city就是用默認參數'beijing',age沒有用,enroll('sary','F','hangzhou')這樣是錯誤的,由於'hangzhou'不是age,是city,所以須要這樣使用:enroll('sary','F',city='hangzhou'),這樣age=6, city='hangzhou'it
3. 可變參數class
1 def calc(numbers) 2 sum = 0 3 for n in numbers: 4 sum = sum + n * n 5 return sum
若是使用上面這個代碼,對於一個list或者tuple輸入值,好比[1,2,3],調用的時候須要這麼寫:calc([1,2,3])或者calc((1, 2, 3)),很麻煩命名
因此可變參數須要在numbers前加*dict
1 def calc(*numbers) 2 sum = 0 3 for n in numbers: 4 sum = sum + n * n 5 return sum
這樣就能夠這樣調用了:calc(1, 2, 3)。di
對於nums = [1, 2, 3]這個list時,若是用上面這個可變參數,則不能寫成calc(nums),須要寫成calc(nums[0], nums[1], nums[2])或者calc(*nums)while
4. 關鍵字參數
1 def person(name, age, **kw) 2 print('name: ’, name, 'age: ', age, 'other: ', kw)
**kw是一個dict,調用語句爲person('jackson', 30, gender='M', city='beijing')後,結果爲name: jackson age:30 other:{'gender' : 'M', 'city' : 'beijing'}
對於extra = {'gender' : 'M', 'city' : 'beijing'}這種已經定義好的dict,能夠這麼調用:person('jackson', 30, **extra)
5. 命名關鍵字參數
這個感受用處不大