1.函數(shù)參數(shù)
? ? 分為位置參數(shù)和關(guān)鍵字參數(shù),位置參數(shù)即定義了函數(shù)之后,需要根據(jù)定義的參數(shù)位置來進(jìn)行傳參,這樣的話需要記憶定義函數(shù)時(shí)候的參數(shù)順序及含義。但是,使用關(guān)鍵字參數(shù)則可以避免這種記憶,只要調(diào)用函數(shù)的時(shí)候指定參數(shù)=值的形式即刻。例如 hello(greeting='Hello',name='World')即可
? ? 當(dāng)然,也存在需要用戶輸入未知數(shù)目的參數(shù)的場景,這時(shí)需要使用到*。定義函數(shù)的時(shí)候可以在參數(shù)前加上*來表示收集所有的傳參,如def print_param(*param),使用時(shí)直接使用print param,這時(shí)候輸出的結(jié)果是一個(gè)元組。當(dāng)時(shí)使用*的時(shí)候只可以收集關(guān)鍵字參數(shù),當(dāng)需要收集關(guān)鍵字參數(shù)時(shí)需要使用**param,這時(shí)候返回的是一個(gè)字典。自己編碼時(shí)選擇一種即可。
? ? 當(dāng)傳入的參數(shù)為字典或者元組時(shí),如def print_param(x,y),使用*param作為實(shí)參,會(huì)自動(dòng)分配2個(gè)元素為x和y,使用**param同理,將value值分配給x和y,這成為收集參數(shù)的逆過程。
2.類
? ? 類是一種對象,所有對象屬于一個(gè)類,對象是類的實(shí)例。
? ? __metaclass__=type 表示使用新式類語法,需要在腳本開頭申明
? ? 定義類
????class person:
? ? ? ? .....定義一堆函數(shù)
? ? 實(shí)例化 foo=person(),這時(shí)候自身會(huì)存在一個(gè)參數(shù)self,表示調(diào)用時(shí)的類的實(shí)例,需要定義,不過名字不是定死的,最好使用self。
? ? 將其他類名寫在類后面的括號里面就表示是其超類,可繼承多個(gè)超類。