Python函數傳參

#dictory.py
#-*- coding:utf-8 -*-json

import json數組

#字典打印漢字輸出
dict1 = {'左邊':2, u'右邊':3}
print dict1, json.dumps(dict1, encoding = "UTF-8", ensure_ascii = False)函數

#可變參數:可變參數容許你傳入0個或任意個參數,這些可變參數在函數調用時自動組裝爲一個tuple。Python容許你在list或tuple前面加一個*號,把list或tuple的元素變成可變參數傳進去
def cal(*num):
    sum = 0
    for n in num:
        sum = sum + n * n
    return sum
    
nums = [1, 2, 3]
sum1 = cal(nums[0], nums[1], nums[2])
sum2 = cal(*nums)
print 'sum1 =', sum1
print 'sum2 =', sum2spa


#關鍵字參數:關鍵字參數容許你傳入0個或任意個含參數名的參數,這些關鍵字參數在函數內部自動組裝爲一個dict。關鍵字參數做用:擴展函數的功能
def person(name, age, **kw):
    print 'name:', name, 'age:', age, 'other:', kw
    
person1 = person('Macheal', 30) code

參數組合

在Python中定義函數,能夠用必選參數、默認參數、可變參數和關鍵字參數,這4種參數均可以一塊兒使用,或者只用其中某些,可是請注意,參數定義的順序必須是:必選參數、默認參數、可變參數和關鍵字參數。對象

小結

Python的函數具備很是靈活的參數形態,既能夠實現簡單的調用,又能夠傳入很是複雜的參數。utf-8

默認參數必定要用不可變對象,若是是可變對象,運行會有邏輯錯誤!ci

要注意定義可變參數和關鍵字參數的語法:import

*args是可變參數,args接收的是一個tuple;擴展

**kw是關鍵字參數,kw接收的是一個dict。

可變參數既能夠直接傳入:func(1, 2, 3),又能夠先組裝list或tuple,再經過*args傳入:func(*(1, 2, 3))

關鍵字參數既能夠直接傳入:func(a=1, b=2),又能夠先組裝dict,再經過**kw傳入:func(**{'a': 1, 'b': 2})

使用*args**kw是Python的習慣寫法,固然也能夠用其餘參數名,但最好使用習慣用法。

 

參考:http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001374738449338c8a122a7f2e047899fc162f4a7205ea3000

相關文章
相關標籤/搜索