Python學習筆記(三)

1)默認參數power(x, n=2):,這樣,當我們調用power(5)時,相當于調用power(5, 2)。只有與默認參數不符的才需要提供額外的信息power(5,3)

2)Python函數在定義的時候,默認參數L的值就被計算出來了,即[],因為默認參數L也是一個變量,它指向對象[],每次調用該函數,如果改變了L的內容,則下次調用時,默認參數的內容就變了,不再是函數定義時的[]了,用none實現不變

if L is None:

L = []

3)定義可變參數和定義一個list或tuple參數相比,僅僅在參數前面加了一個*號

4)*nums表示把nums這個list的所有元素作為可變參數傳進去

5)**extra表示把extra這個dict的所有key-value用關鍵字參數傳入到函數的**kw參數

6)命名關鍵字參數需要一個特殊分隔符*,*后面的參數被視為命名關鍵字參數

6.1)如果函數定義中已經有了一個可變參數,后面跟著的命名關鍵字參數就不再需要一個特殊分隔符*了

6.2)*args是可變參數,args接收的是一個tuple;**kw是關鍵字參數,kw接收的是一個dict。

7)使用遞歸函數的優點是邏輯簡單清晰,缺點是過深的調用會導致棧溢出。

7.1)針對尾遞歸優化的語言可以通過尾遞歸防止棧溢出。尾遞歸事實上和循環是等價的,沒有循環語句的編程語言只能通過尾遞歸實現循環。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容